我用 c++ 编写程序,从中将创建共享库 - 完成后它将被 JNI 使用。我有 3rd 方库( libexample.a ),需要将其链接到共享库( libshared.so )。问题是,我在 64 位 CentOS 上工作,并且需要 -fPIC 来创建共享库,但是第 3 方库没有使用 -fPIC 编译。
直到建立我收到:
/usr/bin/ld: /home/tom/Project/src/libexample.a(SomeObject.o): relocation R_X86_64_32 against 'someData' can not be used when making a shared object; recompile with -fPIC
在这种情况下是否可以制作共享库?(我没有 libexample.a 的源代码 ...)
有什么解决方法可以让它工作吗?甚至我必须编写其他应用程序的想法。
我希望我的问题不会重复(或多或少),因为我花了很长时间寻找可能性。谢谢,贝兹