如果同时存在共享库和动态库,则链接器将首选哪个库?



相同的选项可用于静态链接和动态链接库。 $(CC( $(CFLAGS( -L$(PATH_TO_LIB( -l$(库名称( -o 输出文件名

如果我的PATH_TO_LIB同时包含 .a 和 .so 文件,链接器更喜欢哪一个?

如果链接器是 ld 的变体,那么它将更喜欢共享对象而不是存档。从-l标志的文档来看,强调我的:

-l 名称规范-

-库=名称规范

将 namespec 指定的归档文件或对象文件添加到 要链接的文件。此选项可以使用任意次数。如果 名称规范的形式是:文件名,ld 将搜索库路径 对于名为文件名的文件,否则它将搜索库 名为 libnamespec.a的文件的路径。

在支持共享库的系统上,ld 还可以搜索 库名称规范.a以外的文件。具体来说,在ELF和SunOS上。 系统,LD 将在目录中搜索一个名为 libnamespec.so在搜索一个名为 libnamespec.a之前。(按照惯例,.so 扩展名表示共享库。请注意, 此行为不适用于 :文件名,它始终指定 文件名为文件

最新更新