Linux下为gcc添加头文件的搜索路径


=Start=

缘由:

在Linux环境中编译安装软件的时候,经常会碰到类似于下面的错误:

sipAPIQtCore.h:33:17: 错误:sip.h:没有那个文件或目录

报这个错误是因为gcc没有在默认的搜索路径下找到对应的文件,这时,你需要手动为gcc指定头文件/库文件的搜索路径(前提是有对应的文件),才能顺利完成编译安装。

在此记录一下解决办法,方便以后参考。

正文:

参考解答:
方法一(环境变量):
export CPLUS_INCLUDE_PATH=/usr/local/include/python2.7:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=/usr/local/include/python2.7:$C_INCLUDE_PATH
方法二(编译选项):

为gcc添加「-I dir」选项(可以通过多个「-I dir」的形式添加多个目录至搜索路径列表),将指定的目录添加到头文件搜索路径列表中去。

方法三(不建议):

将需要的所有头文件拷贝到默认的搜索目录下也可以完成编译,但这可能会改变系统默认的头文件内容,所以不推荐这种「饮鸩止渴」的方式。

==

#添加.so搜索路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/lib

#添加.a搜索路径
LIBRARY_PATH=$LIBRARY_PATH:/path/to/lib

#添加bin搜索路径
export PATH=$PATH:/path/to/bin

#添加GCC的include文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/path/to/include

#添加G++的include文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/path/to/include

==

当环境变量和命令行选项被同时使用时,编译器按下面的次序搜索目录:

  1. 从左到右搜索由命令行「-I」和「-L」指定的目录;
  2. 由环境变量,比如「C_INCLUDE_PATH」、「CPLUS_INCLUDE_PATH」和「LIBRARY_PATH」指定的目录;
  3. 默认的系统目录。
参考链接:

=END=


《 “Linux下为gcc添加头文件的搜索路径” 》 有 2 条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注