一、头文件路径添加
编写c/c++的代码的经常,经常#include 头文件,Include有两种方式,如下所示:
#前者是从当前的目录来搜索
#include “mylib.h”
#后者是一般会先搜索 -I 选项后的路径(即用gcc编译时的-I选项),之后就是标准的系统头件路径。
#include <mylib.h>
通过cpp -v命令,可以查看标准系统头文件的路径。
[root@localhost lib]# cpp -v
使用内建 specs。
COLLECT_GCC=cpp
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1 -E -quiet -v - -mtune=generic -march=x86-64
忽略不存在的目录“/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include-fixed”
忽略不存在的目录“/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../x86_64-redhat-linux/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include
/usr/local/include
/usr/include
搜索列表结束。
所以基本上是三个目录:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include
/usr/local/include
/usr/include
添加新的动态库头文件时,可采用以下两种方式引用:
第一种办法:将路径添加到gcc/g++环境变量
#gcc找到头文件的路径(/MyLib是的动态库头文件路径)
C_INCLUDE_PATH=/usr/include/libxml2:/MyLib
export C_INCLUDE_PATH
#g++找到头文件的路径(/MyLib是的动态库头文件路径)
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib
export CPLUS_INCLUDE_PATH
将以上bash配置文件中添加环境变量。
对所有用户有效修改/etc/profile
对个人有效则修改~/.bashrc
第二种办法:在gcc命令中手动设置搜索路径
#gcc或g++ 编译的时候 ,加上 -I 选项, 比如这样
g++ -c -x c++ main.cpp -I /MyLib
二、动态库路径添加
第一种办法:将路径添加到gcc/g++环境变量
#找到动态链接库的路径(/MyLib是的动态库文件路径)
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib
export LD_LIBRARY_PATH
#找到静态库的路径(/MyLib是的动态库文件路径)
LIBRARY_PATH=$LIBRARY_PATH:/MyLib
export LIBRARY_PATH
将以上bash配置文件中添加环境变量。
对所有用户有效修改/etc/profile
对个人有效则修改~/.bashrc
第二种办法:在gcc命令中手动设置搜索路径
gcc或g++ 编译的时候 ,加上 -L 选项, 比如这样
g++ -c -x c++ main.cpp -L /MyLib -lMyLib
在vs2019中,可通过可视化界面设置头文件和库文件路径:
手动设置头文件路径
手动设置动态库路径