【发布时间】:2011-05-24 06:38:42
【问题描述】:
这是来自 Linux 编程书的引述:
% gcc -o app app.o -L. –ltest
假设libtest.a和libtest.so都可用。那么链接器必须
选择其中一个库而不是另一个。链接器搜索每个目录(首先
那些用-L 选项指定的,然后是标准目录中的)。当
链接器找到包含libtest.a 或libtest.so 的目录,链接器停止
搜索目录。如果目录中只有两个变体之一,则链接器
选择该变体。否则,链接器选择共享库版本,除非
否则您明确指示它。您可以使用-static 选项来要求静态
档案。例如,以下行将使用 libtest.a 存档,即使
libtest.so 共享库也可用:
% gcc -static -o app app.o -L. –ltest
由于如果链接器遇到包含libtest.a 的目录,它会停止搜索并使用该静态库,如何强制链接器只搜索共享库而不搜索静态库?
% gcc -o app app.o -L. libtest.so?
【问题讨论】:
标签: c++ linux unix shared-libraries