Java make[1]:输入目录错误消息
我有一个简单的Makefile:Java make[1]:输入目录错误消息,java,makefile,Java,Makefile,我有一个简单的Makefile: default: @make build @make run build: @javac Test.java > /dev/null run: @java Test 在编译过程中,输出: make[1]: Entering directory `<current directory'> ... make[1]: Leaving directory `<current directory'> 将
default:
@make build
@make run
build:
@javac Test.java > /dev/null
run:
@java Test
在编译过程中,输出:
make[1]: Entering directory `<current directory'>
...
make[1]: Leaving directory `<current directory'>
将
make
更改为make-s
:
default:
@make -s build
@make -s run
更好的是:
default:
@$(MAKE) -s build
@$(MAKE) -s run
更好的是:
default: run
build:
@javac Test.java > /dev/null
run: build
@java Test
make-s
抑制其他makefile消息,这对开发人员可能很重要。如果要禁止“输入/离开目录消息”,请仅使用运行make
make--无打印目录
您的代码是什么?我们猜不出…为什么要用make编译Java?(我猜是“因为老师这么说的”)@Neal抱歉,编辑成包含代码片段。我们使用make是因为语言的选择取决于我们。讲师只需要一种统一的方式来调用我们所有不同的程序。这不是一个有效的生成文件。无论如何,将makefile简化为最简单的复制行为的文件,但请不要发布片段。如果您向我们展示整个makefile,我们可以告诉您将@
和-s
@Beta放在何处,并对其进行编辑以包含有效的makefile。我注意到,如果我没有嵌套目标(即只是在没有单独目标的默认情况下编译和运行),它就不会输出这些消息。然而,我想保留单独的目标。有什么想法吗?甚至更好。在构建和运行目标中添加.虚假标记。请解释一下“更好”的解决方案好吗?(什么意思是@$(MAKE)
?)@Yukulélé:包含调用MAKE的可执行文件的名称,它在makefile配方中得到一些特殊处理。@
>这只适用于GNU Make。
default: run
build:
@javac Test.java > /dev/null
run: build
@java Test