链接程序和库指南

同时链接共享库和归档

动态模式下的库搜索机制搜索给定目录以查找共享库,然后搜索归档库。使用 -B 选项可以更精确地控制搜索。

通过在命令行中指定 -B dynamic-B static 选项,可以分别在共享库或归档之间切换库搜索。例如,要将应用程序与归档 libfoo.a 和共享库 libbar.so 链接,可发布以下命令:


$ cc -o prog main.o file1.c -Bstatic -lfoo -Bdynamic -lbar

-B static-B dynamic 关键字并不完全对称。指定 -B static 时,链接编辑器要等到下一次出现 -B dynamic 时才接受共享库作为输入。但是,指定 -B dynamic 时,链接编辑器首先在任何给定的目录中查找共享库,然后查找归档库。

对上一个示例的准确说明如下:链接编辑器首先搜索 libfoo.a,然后搜索 libbar.so ,如果此搜索失败,则搜索 libbar.a。最后,链接编辑器搜索 libc.so,如果此搜索失败,则搜索 libc.a