有可能的是,图书馆的一个以上的实例在编译期间的搜索路径是否存在。按照什么顺序链接器将包含在搜索路径的过程目录?所讨论的平台是Sun OS。

有帮助吗?

解决方案

在目录中查找在其中它们在命令行上指定的顺序。在命令行上指定的目录之前默认的目录中查找。所有-L选项适用于所有的-l选项,而不考虑其选项出现的顺序。 LD_LIBRARY_PATH也可用于补充库搜索路径。在包含匹配库中的第一目录的目录搜索停止。

LD_LIBRARY_PATH是棘手的,但:

LD_LIBRARY_PATH 
     

目录的列表,其中以搜索与指定的库   -l选项。多个目录   由冒号分开。在最   一般情况下,将包含两个   目录列表相隔一   分号:

dirlist1; dirlist2 
     

如果LD被称为与任何数量的-L的出现,如在:

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

,则搜索路径顺序是:

         dirlist1 path1 . . . pathn dirlist2 LIBPATH
     

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

     

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

请阅读更多关于它这里

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top