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


    在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
    三个维度的生效范围同头文件。

  • 相关阅读:
    Codeforces Round 916 (Div. 3)(A~E题解)
    c实现mp4解封装
    SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
    图解LeetCode——1796. 字符串中第二大的数字(难度:简单)
    webSocket推送太快导致前端渲染卡顿问题优化
    BEAPP:脑电批处理平台
    【HCIA】OSI 模型
    解决Java中https请求接口报错问题
    【MySQL】MySQL 数据库锁知识 讲解
    [附源码]Python计算机毕业设计Django宁财二手物品交易网站
  • 原文地址:https://blog.csdn.net/github_38595636/article/details/133351695