[英]What does it means @CPPFLAGS@ in Makefile.in?
我有一个Makefile.in文件,它通过配置生成一个Makefile.am 。 之后使用 automake Makefile.am 创建Makefile 。
现在我想在生成的 Makefile 中添加一个定义。 问题是,在生成的 Makefile 中,我在变量CPPFLAGS 中找到了一个标志列表,但在 Makefile.in 中 CPPFLAGS 的定义中,我只找到了以下列方式写入的一行:
CPPFLAGS = @CPPFLAGS@
@CPPFLAGS@
是什么意思? 以及如何在生成的 Makefile 中设置新标志?
CPPFLAGS 代表 C 预处理器标志。
您可以将其设置为环境变量或通过命令行:
CPPFLAGS="-g -Wall -O0" automake
或者
CPPFLAGS="-g -Wall -O0" make
从 gnu Make 手册:
CPPF标志
Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
该字符串@CPPFLAGS@
由配置脚本扩展为CPPFLAGS当时值configure
被执行。 换句话说,如果您运行configure CPPFLAGS=foo
,那么@CPPFLAGS@
将被扩展为字符串foo
。
Automake 在调用 configure 之前就已经运行很久了。 automake 所做的只是在构建该文件时将字符串@CPPFLAGS@
添加到 Makefile.in 中。
作为项目维护者,您不应编辑这些值。 这是用户能够在配置时向构建添加标志的机制。
如果你想添加标志,你应该在 Makefile.am 中分配给AM_CPPFLAGS
。 但很可能你并不真的想这样做。 这很难说,这取决于您认为要添加的标志。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.