添加编译器选项而不编辑Makefile

时间:2010-08-30 17:55:31

标签: c makefile

我应该通过Makefile编译用C编写的程序。我应该在Makefile中插入一些选项,例如:-O2, -march=i686。如何在不写入文件的情况下在Makefile中插入此选项?

2 个答案:

答案 0 :(得分:20)

您应该使用像CFLAGS这样的宏。查看GNU GCC documentation

这样的事情应该有效:

CFLAGS := $(CFLAGS) -O2 -march=i686

或者,如果您不想修改makefile,请使用:

make CFLAGS='-O2 -march=i686' 

其他选项会自动被选中。请参阅overriding variables

答案 1 :(得分:0)

例如,如果您想链接特定的库(例如 -lm),这可能会很麻烦。如果您并不总是需要 math.h,将它放入 make 似乎有点过分。我希望有一种方法可以运行 make 并动态添加链接器库。除非我误解了文档。