代码之家  ›  专栏  ›  技术社区  ›  Leonid

链接器按什么顺序处理库目录?

  •  5
  • Leonid  · 技术社区  · 16 年前

    1 回复  |  直到 16 年前
        1
  •  7
  •   user405725 user405725    16 年前

    将按照在命令行上指定的顺序搜索目录。在命令行中指定的目录在默认目录之前搜索。All-L选项应用于All-L选项,而不管选项出现的顺序如何。LD_LIBRARY_PATH也可用于补充库搜索路径。目录搜索在包含匹配库的第一个目录处停止。

    不过,LD_LIBRARY_PATH很棘手:

    LD_LIBRARY_PATH 
    

    要在其中搜索用指定的库的目录列表 l选项。多个目录 被一个冒号隔开。最多 目录列表用 分号:

    dirlist1; dirlist2 
    

    ld . . . -Lpath1 . . . -Lpathn . . .
    

    则搜索路径顺序为:

             dirlist1 path1 . . . pathn dirlist2 LIBPATH
    

    如果目录列表不包含分号,则 解释为目录2。

    运行时链接器。也就是说,如果 库路径存在于 环境中,运行时链接器将 搜索其中命名的目录, 在其默认目录之前 要链接到的共享对象

    请多看一点 here