添加路径到头文件默认搜索路径

在linux环境下写代码,出现函数是从其他文件引用的,需要把该文件的搜索路径添加到当前文件。

注意,除非必要,一般不建议这样做。比较好的方式是写入到CMakeLists或者Makefile中。

一次性生效,命令行输入即可,只对当前shell生效,重新登录消失:
c++: export CPLUS_INCLUDE_PATH=xxx:$CPLUS_INCLUDE_PATH
c: export C_INCLUDE_PATH=XXXX:$C_INCLUDE_PATH

用户级生效:
修改用户的 ~/.bashrc,在文件最后添加上述命令。执行source ~/.bashrc 或者重新登录生效。

全局级生效:
修改/etc/profile 文件,在文件最后添加上述命令,运行 source /etc/profile 后生效。对所有用户生效。

库文件
————————————————

头文件用于编译,库文件用于链接,编译通过了,还要链接通过。链接时库文件的查找顺序如下:

编译时指定的库文件目录(由gcc -L参数指定)
环境变量LIBRARY_PATH指定的目录
系统默认目录:/lib; /usr/lib; /usr/local/lib
一般用户安装的库会安装在/usr/local/lib,系统自带的库位于/lib; /usr/lib,用户自己编译的库可能就要使用-L参数指定了。

编译时通过了,还会有一个问题,就是运行动态库的使用。因为动态库是运行时加载的,所以还会有一个查找的顺序:

编译时指定的动态库搜索路径(通过gcc 的参数"-Wl,-rpath,"指定。当指定多个动态库搜索路径时,路径之间用冒号:分隔)
环境变量LD_LIBRARY_PATH指定的动态库搜索路径(路径之间用冒号:分隔)
配置文件/etc/ld.so.conf中指定的动态库搜索路径
默认的动态库搜索路径/lib:/usr/lib

注意,除非必要,一般不建议这样做。比较好的方式是写入到CMakeLists或者Makefile中。

与头文件默认路径的添加方法类似,添加的命令如下:

#动态链接库搜索路径:
export LD_LIBRARY_PATH=XXX:$LD_LIBRARY_PATH
#静态链接库搜索路径:
export LIBRARY_PATH=XXX:$LIBRARY_PATH
1#动态链接库搜索路径:
        export LD_LIBRARY_PATH=XXX:$LD_LIBRARY_PATH
2#静态链接库搜索路径:
        export LIBRARY_PATH=XXX:$LIBRARY_PATH
三个维度的生效范围同头文件。

你可能感兴趣的:(c++,linux,c++)