微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将.a中的链接函数转换为.so

我写了一个共享的libA.so。 我的程序P将dynamic加载libA.so (使用dlopen,dlsym …)。

这是我的问题:

在libA.so中 ,我必须在静态libB.a中使用函数(例如fun1() ),但是libB.a不用-fPIC编译,而且我也不能重新编译libB.a ,所以我不能将libB.a链接到libA.so

我已经尝试链接libB.a到P (与-Wl , – 整个档案),为了让dynamic加载器链接fun1()到libA.so加载时。 但是,这是行不通的。 我很确定fun1()是在P (我检查它: nm P | grep "fun1" )。

在Linux中与特定的共享库版本链接

链接一个库的多个版本

未使用function的链接错误:它们什么时候发生?

如果链接错误“undefined reference”,如何find符号的调用例程?

在Eclipse / CDT / gcc中使用用Visual Studio构build的.lib

我能怎么做?

提前致谢!

gcc -Wl选项:不能通过昏迷

什么导致这个链接失败(未定义的参考)?

ld联动问题:/ usr / bin / ld:找不到

在32位Windows上静态链接错误添加一个领先的下划线

环境覆盖Linux链接器/加载器

如果要将libB.a链接到P ,以便函数在由P载入时可用于libA.so ,则需要使用-rdynamic选项编译P

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐