链接器以哪种顺序处理库目录?

时间:2010-10-05 16:14:32

标签: c++ linker sunos

编译期间,搜索路径中可能存在多个库实例。链接器处理目录以什么顺序包含在搜索路径中?有问题的平台是Sun OS。

1 个答案:

答案 0 :(得分:6)

按照命令行中指定的顺序搜索目录。在默认目录之前搜索命令行中指定的目录。无论选项出现的顺序如何,所有-L选项都适用于所有-l选项。 LD_LIBRARY_PATH也可用于补充库搜索路径。目录搜索在包含匹配库的第一个目录处停止。

LD_LIBRARY_PATH虽然很棘手:

LD_LIBRARY_PATH 
     

搜索指定库的目录列表   -l选项。多个目录   被冒号分开。最多   一般情况下,它将包含两个   目录列表以a分隔   分号:

dirlist1; dirlist2 
     

如果使用任意数量的-L调用ld,如:

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

然后搜索路径排序为:

         dirlist1 path1 . . . pathn dirlist2 LIBPATH
     

当目录列表不包含分号时,它是   解释为dirlist2。

     

LD_LIBRARY_PATH还用于指定库搜索目录   运行时链接程序。也就是说,如果   LD_LIBRARY_PATH存在于   环境,运行时链接器将   搜索其中指定的目录,   在其默认目录之前,用于   要与之链接的共享对象   执行中的程序。

请详细了解here

相关问题