我想让我gcc
总是默认添加一些标志,有没有一种干净的方法可以做到这一点?
基本上,我每次调用时都会传递一些标志gcc
,例如(但不限于)-g
(以便它具有调试信息)。
有几种解决方法,但它们很难看:
alias g++=...
,但我不喜欢这种方法;- 写一个环绕g++的脚本,类似1;
- ...
我宁愿只修改规范文件,以便一切都是无缝的。
运行strace gcc | grep specs
以查看它在哪里搜索 specs 文件,然后去那里运行gcc -dumpspecs > specs
. 您现在有一个可以编辑的规格文件。使用此参考:https ://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
修改 specs 文件的麻烦在于你曾经改变对某个选项的想法,你不能从命令行取消它;你必须去修改规范文件。您还必须记住在升级编译器时重新修改新的规范文件。
另外,您多久从命令行运行一次编译器?我知道我唯一一次直接这样做是当我需要临时修改命令行并且我懒得解决如何修复 makefile 中的编译器选项时,所以我从make 的输出,然后运行编译器。一个问题alias
是它不能在makefile
. 因此,对我来说,问题将减少到确保在每个 makefile 中都使用编译器选项。