我希望在将在FreeBSD、macOS和Linux上执行的makefile中使用shell赋值操作符(即FreeBSD)。下面是一个例子:$a:以下是预期的输出:$ make all2不幸的是,macOS蒙特雷12.6.1附带的GNU不支持shell赋值操作符它适用于最近版本的GNU (例如,4.4),在最近的Linux发行版中可能会遇到这种情况。
如果我希望这个makefile与任何版本的GNU和bmake一起工作,我应该做什
=赋值了一个以前没有赋值过的变量(未定义)。但如果通过命令行指定:一些随机(ASCII、非ASCII、仅限空格)字符而不是1234被打印到终端。使用=而不是?=可以像预期的那样工作,但不能在我的例子中使用,因为它覆盖了“继承的”,从调用make导出的赋值。另外,如果不使用基于目标的全局赋值,则输出结果与预期一致。这些字符序列是从哪里来的?在linux gentoo (GNU make v3.82)和deb-wheezy (GNU make v3.81)上进行了测试。
谢谢你的