C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何强制链接器使用共享库而不是静态库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是 Linux编程书的引用:

假设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

解决方法

如果您的链接支持它(ld的旧版本),则可以使用其表单-l:filename的-l选项
gcc -o app app.o -l. -l:libtest.so

其他选项是直接使用文件名,而不用-l和-L

gcc -o app app.o /path/to/library/libtest.so

大佬总结

以上是大佬教程为你收集整理的c – 如何强制链接器使用共享库而不是静态库?全部内容,希望文章能够帮你解决c – 如何强制链接器使用共享库而不是静态库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。