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