设置:tmux中的macOS,bash。我使用通过自制程序安装的make
。
在我的Makefile中运行make
时,我得到
protoc -I=foo/bar/proto --cpp_out=foo/bar/proto foo/bar/proto/foo.proto
make: *** No rule to make target 'foo/bar/proto/foo.pb.h', needed by 'proto'. Stop.
make: *** Waiting for unfinished jobs....
当我改为运行gmake
时,程序成功:
protoc -I=foo/bar/proto --cpp_out=foo/bar/proto foo/bar/proto/foo.proto
protoc -I=foo/bar/proto --python_out=foo/bar/proto foo/bar/proto/foo.proto
但是二进制文件完全相同:
$> readlink -f `which make`
/usr/local/Cellar/make/4.2.1_1/bin/gmake
$> readlink -f `which gmake`
/usr/local/Cellar/make/4.2.1_1/bin/gmake
这怎么可能?
有人建议this question是重复的,似乎并非如此。我知道,系统make
不一定是GNU make
或当前版本。但如上所述,这两个命令指的是完全相同的二进制文件。