zoukankan      html  css  js  c++  java
  • 静态链接与动态链接库的查找顺序

    静态库链接时搜索路径顺序:

    1. ld会去找GCC命令中的参数-L
    2. 再找gcc的环境变量LIBRARY_PATH
    3. 再找内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的

    动态链接时、执行时搜索路径顺序:

    1. 编译目标代码时指定的动态库搜索路径
    2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
    3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径
    4. 默认的动态库搜索路径/lib
    5. 默认的动态库搜索路径/usr/lib

    有关环境变量:
    LIBRARY_PATH环境变量:指定程序静态链接库文件搜索路径
    LD_LIBRARY_PATH环境变量:指定程序动态链接库文件搜索路径

    头文件:

    系统预设目录

    系统预设的头文件目录是通过环境变量C_INCLUDE_PATH来设置的,这个变量的值要在执行配置命令configure之前设置。

    编译器预设目录

    编译器预设目录由编译器自己决定的,由程序代码决定的,这是不需要工人设置或指定的。

    可以总结出头文件的查找路径及优先顺序:

    1.如果源文件中使用双引号来包含头文件,则首先在源文件当前目录查找头文件。  
    2.如果编译时使用"-I/some/dir",则在/some/dir中查找。 
    3.如果设置了环境变量C_INCLUDE_PATH,则在指定的目录中查找。 
    4.最后在编译器预设的路径中查找,这是不需要指定的,编译时一定会在该路径中搜索所需的头文件。

  • 相关阅读:
    lua 5.3最简单plugin编写
    CMake for MFC example
    写了个自动生成vcxproj的程序
    kindle試玩
    解放双手:如何在本地调试远程服务器上的Node代码
    PM2实用入门指南
    Express使用手记:核心入门
    Node服务一键离线部署
    fis-receiver:一行命令将项目部署到远程服务器
    Reflux系列01:异步操作经验小结
  • 原文地址:https://www.cnblogs.com/GnibChen/p/8649476.html
Copyright © 2011-2022 走看看