GCC / G ++是否有环境变量在编译期间查找.h文件?
我谷歌我的问题,有人说LIBRARY_PATH,C_PATH,C_INCLUDE_PATH,CPLUS_PATH,那么它是哪一个?
答案 0 :(得分:25)
来自:http://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html
CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH
每个变量的值是一个由特殊字符分隔的目录列表,与PATH非常相似,可以在其中查找头文件。特殊字符
PATH_SEPARATOR
与目标有关,并在GCC构建时确定。对于基于Microsoft Windows的目标,它是一个分号,对于几乎所有其他目标,它都是冒号。CPATH指定要搜索的目录列表,就像使用
-I
指定的那样,但是在命令行上使用-I
选项指定的任何路径之后。无论预处理哪种语言,都使用此环境变量。其余环境变量仅在预处理指定的特定语言时适用。每个指定要搜索的目录列表,就像使用
-isystem
指定一样,但是在命令行上使用-isystem
选项给出的任何路径之后。在所有这些变量中,空元素指示编译器搜索其当前工作目录。空元素可以出现在路径的开头或结尾。例如,如果
CPATH
的值为:/special/include
,则其效果与“-I. -I/special/include
”相同。
我认为大多数设置都避免使用环境变量,而是使用-I
选项在命令行中传递include目录。通常会有一个makefile变量或一个IDE设置来控制传递给-I
的内容。
答案 1 :(得分:7)
看看actual gcc documentation。这一切都在那里解释。
总结:
-l
选项请求的库时使用)-I
选项)答案 2 :(得分:2)
另外,如果您不确定系统中正在检查哪些路径,则可以使用
cpp -v
这将告诉您正在检查哪些路径.h文件,输出包括部分:
#include "..." search starts here:
#include <...> search starts here: