繁体   English   中英

将 *.a 编译为 *.so

[英]Compile *.a to *.so

也许是一个愚蠢的标题,但我没有足够的创造力来找到一个更好的。 我的问题:我有一个动态库,其中包含我的核心库和一个家伙库 FoxToolkit 所以 *.so 文件包含,作为样本,mycorelib.a 和 foxtoolkit.a 我现在已经从 mycorelib.a 中删除了对 foxtoolkit.a 的所有依赖所以 foxtoolkit 已经过时了。 所以我只需要 mycorelib.a 作为动态库 mycorelib.so

需要什么,也许是 gcc 的命令行,才能将 .a 变成 .so?

有多种方法可以实现这一点。

首先,因为.a是一个档案,你可以解压它并从.o文件创建一个共享库

ar -x mycorelib.a
g++ -shared *.o -o mycorelib.so

其次,只是一个做同样事情的单线,但需要更多的努力来理解

gcc -shared -o mycorelib.so -Wl,--whole-archive mycorelib.a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM