Makefile.in 中的 @CPPFLAGS@ 是什么意思?
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 手册:
CPPFLAGS
Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
字符串 @CPPFLAGS@
在执行 configure
时被配置脚本扩展为 CPPFLAGS 的值。也就是说,如果你 运行 configure CPPFLAGS=foo
,那么 @CPPFLAGS@
将被扩展为字符串 foo
.
Automake 运行 在调用 configure 之前很久。 automake 所做的只是在构建该文件时将字符串 @CPPFLAGS@
添加到 Makefile.in。
作为项目维护者,您不应该编辑这些值。这是用户能够在配置时向构建添加标志的机制。
如果你想添加标志,你应该在Makefile.am中分配给AM_CPPFLAGS
。但很可能你真的不想这样做。很难说,这取决于您认为要添加的标志。
我有一个 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 手册:
CPPFLAGS
Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
字符串 @CPPFLAGS@
在执行 configure
时被配置脚本扩展为 CPPFLAGS 的值。也就是说,如果你 运行 configure CPPFLAGS=foo
,那么 @CPPFLAGS@
将被扩展为字符串 foo
.
Automake 运行 在调用 configure 之前很久。 automake 所做的只是在构建该文件时将字符串 @CPPFLAGS@
添加到 Makefile.in。
作为项目维护者,您不应该编辑这些值。这是用户能够在配置时向构建添加标志的机制。
如果你想添加标志,你应该在Makefile.am中分配给AM_CPPFLAGS
。但很可能你真的不想这样做。很难说,这取决于您认为要添加的标志。