[英]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.