我阅读了有关CPPFLAGS的文件。不久,我明白CPPFLAGS用于传递参数到编译器。 makefile中的示例用法CPPFLAGS如下所示。
gcc $(CPPFLAGS) main.c -o main.o
执行make
make CPPFLAGS=-I../header
什么是特殊的CPPFLAGS文字?它可以互换任何其他文本,如“FOO”。 FOO变量和CPPFLAGS变量之间有什么区别?将所有CPPFLAGS文本替换为FOO文本构建再次成功,没有任何更改。
实际需要解决的主要问题。有很多makefile。这些makefile中没有包含CPPFLAGS变量。有没有办法在不更改makefile的情况下传递编译器选项。
感谢。
答案 0 :(得分:1)
什么是特殊的CPPFLAGS文字?它可以互换任何其他文本,如“FOO”
有关CPPFLAGS
的三件事情很特别:
CPPFLAGS
时,这些隐式规则使用.o
变量。如有必要,可以用自己的规则替换这些规则。CPPFLAGS
作为预处理程序标记时,请遵循the principle of least astonishment。这些makefile中没有包含CPPFLAGS变量
如果你的意思是makefile中没有出现CPPFLAGS
,可能是因为我使用了上面提到的隐式规则。