首页 文章

传递变量来制作文件

提问于
浏览
0

我阅读了有关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的情况下传递编译器选项 .

谢谢 .

1 回答

  • 1

    什么是特殊的CPPFLAGS文字?它可以互换任何其他文本,如“FOO”

    有关 CPPFLAGS 的三件事情很特别:

    • 许多工具都遵循惯例 . 最值得注意的是GNU autoconf / automake .

    • GNU Make提供implicit rules来构建许多目标类型 . 从C和C源编译 .o 时,这些隐式规则使用 CPPFLAGS 变量 . 如有必要,可以用自己的规则替换这些规则 .

    • 当您使用 CPPFLAGS 作为预处理程序标志时,请遵循the principle of least astonishment .

    这些makefile中没有包含CPPFLAGS变量

    如果你的意思是makefile中没有出现 CPPFLAGS ,可能是因为我使用了上面提到的隐式规则 .

相关问题