繁体   English   中英

与g ++链接的选项

[英]linked option with g++

我有一个共享库,需要在我的Java应用程序中加载。

我的共享库“ libabc.so”代码使用另一个共享库“ libxyz.so”的API

尽管我通过库头文件提供了这些API的声明,

当我用以下命令构建共享库“ libabc.so”时

g ++-共享-Wall -pthread -lrt

Java应用程序无法加载该库。 而如果我使用g ++ -shared -Wall -pthread -lrt -lxyz构建它,则会成功加载它。

在这两个选项中,生成的库都没有报告任何错误。 但是对于第二种选择,无论我在哪里构建图书馆,我都应该在环境中可以使用libxyz.so。 有没有其他选择? 我在这里想念什么吗?

恐怕这是不可能的。 如果要构建依赖于另一个共享库库的共享库,则必须明确声明此依赖关系。 否则,动态链接程序/加载程序将无法解析所有依赖关系。

如果要摆脱依赖关系,并且可以访问libxyz.so的源(或libxyz.so也可以从libxyz.a-静态库获得),则可以尝试将它们捆绑到libabc.so中。

暂无
暂无

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

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