make [1]:输入目录错误消息

noo*_*ler 11 java makefile

我有一个简单的Makefile:

default:
    @make build
    @make run

build:
    @javac Test.java > /dev/null

run:
    @java Test
Run Code Online (Sandbox Code Playgroud)

在编译期间,输出:

make[1]: Entering directory `<current directory'>
...
make[1]: Leaving directory `<current directory'>
Run Code Online (Sandbox Code Playgroud)

我需要make来构建而不打印这些消息.有谁知道问题是什么或如何抑制这些消息?

谢谢


编辑:无论代码如何都会发生这种情况.例如它发生在:

class Test {

    public static void main(String[] args) {
        System.out.println("HELLO WORLD");
    }
}
Run Code Online (Sandbox Code Playgroud)

man*_*m-n 22

make -s抑制其他可能对开发人员很重要的makefile消息.如果要抑制"进入/离开目录的消息"只运行make

make --no-print-directory


Bet*_*eta 18

更改makemake -s:

default:
    @make -s build
    @make -s run
Run Code Online (Sandbox Code Playgroud)

更好的是:

default:
    @$(MAKE) -s build
    @$(MAKE) -s run
Run Code Online (Sandbox Code Playgroud)

更好的是:

default: run

build:
    @javac Test.java > /dev/null

run: build
    @java Test
Run Code Online (Sandbox Code Playgroud)

  • 甚至更好。将.PHONY标记添加到构建和运行目标。 (2认同)
  • 请问您能解释一下“更好”的解决方案吗?(“@$(MAKE)”是什么意思?) (2认同)