2013-02-13 45 views
-2

我有一些项目有很多文件,我想编译它们全部与-Wall,
我怎么能在linux上做到这一点,而不改变makefile作出全局选项

make -Wall 

没有帮助。

任何帮助表示赞赏。

+2

这取决于如何编写makefile - 不一定有办法做到这一点 - 绝对不是所有情况下的一般方法。给emakefile,我们也许能够提供帮助,但是如果你能够学习makefile语法并提供一些建议的方法,那么我们就可以在它不起作用时进行纠正。 – Mark 2013-02-13 18:18:33

+0

这个问题可能有助于编辑makefile:http://stackoverflow.com/questions/2826029/passing-additional-variables-from-command-line-to-make – ajp15243 2013-02-13 18:21:51

回答

1

可能能够做到像

make CC='gcc -Wall' CXX='g++ -Wall' 

这将告诉make使用“GCC -Wall”作为C编译器和g++ -Wall作为C++编译器

这是假设所有的源代码是C和C++,生成文件使用CCCXX变量,并且它使用GCC作为编译器,可能还有其他几种假设。

通常编译标志存储在化妆变量,如CFLAGSCXXFLAGS,但如果你忽略他们,你可能会更换所必需的正确操作现有选项,因此添加选项CC和/或CXX有时是更安全的。

+0

我可以不改变选项,我的意思是只添加? – Arseniy 2013-02-13 18:39:30

+0

对不起,我不明白这个问题。无法在命令行上添加现有变量,只能覆盖它们。要添加到选项中,您必须编辑生成文件 – 2013-02-13 18:50:49