本文介绍了如何使用gcc从ubuntu下的静态库创建共享库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个静态库 libsrp.a,我想从中创建一个包含所有符号的共享库 libsrp.so.请告诉我如何在 ubuntu 下制作 .so.

i have a static library libsrp.a, i want to make a shared library libsrp.so from it that contains all symbols . please tell me how to make a .so under ubuntu.

谢谢

推荐答案

使用 --whole-archive 标志:

gcc -shared -o libsrp.so -Wl,--whole-archive -lsrp -Wl,--no-whole-archive

来自 ld 手册页(我的重点):

--整体存档对于 --whole-archive 选项后命令行中提到的每个存档,将存档中的每个目标文件都包含在链接中,而不是在存档中搜索所需的目标文件.这通常用于将存档文件转换为共享库,强制将每个对象都包含在生成的共享库中.此选项可以多次使用.

这篇关于如何使用gcc从ubuntu下的静态库创建共享库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-19 01:26