【发布时间】:2013-07-28 03:00:35
【问题描述】:
我正在编译包,我看到 Makefile 作者经常在 makefile 中编写集合 CFLAGS,带有这样那样的选项。另一方面,我想尝试一些编译器优化,并希望传播编译器开关以尽可能减少麻烦。不过,这并不总是可行的。例如,当一个 makefile 指定 CFLAGS 并且我希望所有 C 编译器调用都使用 -fomit-frame-pointer 时,不必显式地编写类似 CFLAGS=-fomit-frame-pointer make 的东西,那么我的选项是什么不是 hackish。从我所看到的有上面,然后有相同但不同的make "CFLAGS=-fomit-frame-pointer",我也可以做我认为是最好的解决方案和这个问题的原因:
export CFLAGS=-fomit-frame-pointer
make -e
我认为这是最好的,因为坦率地说,我什至认为有潜在危险的标志,我不会调试软件那么多,当我需要时,我可以根据需要重新编译特定的部分,包括调试信息和所有内容。否则,我喜欢使用发布软件而不需要调试花里胡哨,特别是如果软件包不是由我创作的。所以我想我在这里具体问的是:为什么make不会自动选择环境变量而不是makefile自己的?毕竟环境最清楚什么是什么,如果让作者真的需要他们的方式有'覆盖'语法,对吧?
【问题讨论】:
-
有一个参数要制作:--environment-overrides 可以按照您的描述进行操作,我认为,因此您可以通过使用调用 real 的脚本“包装”make 将其设为默认值使用 --environment-overrides FWIW 制作
标签: makefile environment