本文最后更新于2016年9月18日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!
=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
==
当环境变量和命令行选项被同时使用时,编译器按下面的次序搜索目录:
从左到右搜索由命令行「-I」和「-L」指定的目录;
由环境变量,比如「C_INCLUDE_PATH」、「CPLUS_INCLUDE_PATH」和「LIBRARY_PATH」指定的目录;
默认的系统目录。
参考链接:
=END=