我用 C++ 编写程序,将从中创建共享库 - 完成后将由 JNI 使用。我有第 3 方库 ( libexample.a ),需要将它链接到共享库 ( libshared.so )。问题是,我在 64 位 CentOS 上工作,需要 -fPIC 来创建共享库,但第 3 方库不是用 -fPIC 编译的。
直到构建我收到:
/usr/bin/ld:/home/tom/Project/src/libexample.a(SomeObject.o):创建共享对象时不能使用针对“someData”的重定位 R_X86_64_32;重新编译 -fPIC
在这种情况下是否可以创建共享库? (我没有 libexample.a 的源代码...)
是否有任何解决方法可以使其正常工作?甚至是我必须编写其他应用程序的想法。
我希望我的问题没有(或多或少)重复,因为我花了很长时间寻找可能性。 谢谢,贝兹
最佳答案
没有任何解决方法。我不得不写信给第 3 方库开发人员以使用 -fPIC
关于c++ - 将静态库(不带 -fPIC)链接到 64 位操作系统上的共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818921/