bash - `make` 二进制文件的两个不同符号链接:为什么调用的结果不同?
问题描述
设置:macOS、bash、tmux 内部。我使用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
这怎么可能?
有人建议这个问题是重复的,但似乎并非如此。我知道,系统make
不一定是 GNUmake
或不是当前版本。但正如上面所证明的,这两个命令指的是完全相同的二进制文件。
解决方案
推荐阅读
- ios - 如何使用 collectionView didSelectItemAt 推送导航视图?
- java - 如何将字符串与字符串数组进行比较以从地图中获取值?
- flutter - 无法使用 dart:ffi 在 Flutter 中使用已编译的 C 文件
- javascript - 获取ionic4中离子选择选项的名称
- python - 我应该使用哪种算法来优化我的代码?
- javascript - JQuery 加载更多按钮不显示它打算显示的内容
- c# - log4net 的错误消息在日志文件中被截断
- javascript - d3.xml 升级到 v5 后损坏
- vagrant - Vagrant-Hyper-V:不应存在以下设置:customize、gui
- php - 每天在特定时间运行一个函数