系统定义的头文件通常使用尖括号;用户自定义的头文件通常使用双引号
双引号主要是makefile指定的,我们不过多讨论;关于<>我们都知道是从系统定义的文件路径去找,那系统定义的头文件到底在哪呢?首先要确定你编译用的toolchain是哪个,下面以arm-linux-gnueabihf-gcc为例:
gcc:
可以通过如下命令获取编译系统路径:
echo | arm-linux-gnueabihf-gcc -v -x c++ -E -
#include "..." search starts here:
#include <...> search starts here:
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include/c++/4.8.3
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include/c++/4.8.3/arm-linux-gnueabihf/.
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include/c++/4.8.3/backward
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/include
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/include-fixed
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../arm-linux-gnueabihf/libc/usr/include/.
End of search list.
g++:
echo | arm-linux-gnueabihf-g++ -v -x c++ -E -
#include "..." search starts here:
#include <...> search starts here:
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include/c++/4.8.3
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include/c++/4.8.3/arm-linux-gnueabihf/.
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include/c++/4.8.3/backward
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/include
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/include-fixed
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/include
/opt/ToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/../arm-linux-gnueabihf/libc/usr/include/.
End of search list.
如果需要添加新的头文件到系统编译路径可按如下方法导入:
#在PATH中找到可执行文件程序的路径。
export PATH =$PATH:$HOME/bin
#gcc找到头文件的路径
C_INCLUDE_PATH=/usr/include/libxml2:/MyLib
export C_INCLUDE_PATH
#g++找到头文件的路径
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib
export CPLUS_INCLUDE_PATH
#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib
export LD_LIBRARY_PATH
#找到静态库的路径
LIBRARY_PATH=$LIBRARY_PATH:/MyLib
export LIBRARY_PATH