繁体   English   中英

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 手册:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM