我开始学习makefile。查看输出,我看到很多情况:
g++ -DHAVE_CONFIG_H -I ...
什么是
-DHAVE_CONFIG_H
确切地?这个编译选项的作用是什么?
最佳答案
所有这些 -DHAVE_CONFIG_H
做的是定义预处理器 token HAVE_CONFIG_H
就像您拥有 #define HAVE_CONFIG_H
一样就在每个源文件的开头。
至于它的用途,这完全取决于源文件的其余部分(以及它包含的所有内容)。这就是您应该寻找以计算其效果的地方。
看起来可能意味着头文件 config.h
可用并且应该包括在内,在这种情况下,您可能会在源文件中的某处找到以下序列:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
当您说它可用时,它将包含头文件。然而,这是我的假设,绝不是确切的效果,只是我将使用这样的预处理器符号的目的。
关于makefile - 生成文件中 -DHAVE_CONFIG_H 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438274/