我有一个特定的可执行文件(让我们称之为bin
),当用./bin
正常运行时,它会崩溃,但如果我创建这个Makefile:
all:
./bin
而我做的是make
,可执行文件运行时没有错误并正确终止。这怎么可能呢?
您没有说明您使用的是哪个版本的make,但GNU make的旧版本有一个错误,make将自己的堆栈大小设置为"无限制",然后在运行程序时没有将其设置回默认值。GNU的新版本修复了这个错误,使程序以默认的堆栈大小运行。
请参阅https://savannah.gnu.org/bugs/?func=detailitem&item_id=22010