我使用C++編寫程序,從中將其製作成共享庫 - 並將其用於JNI。我有第三方庫(libexample.a),需要將它鏈接到共享庫(libshared.so)。問題是,我在64位CentOS上工作,-fPIC需要創建共享庫,但第三方庫不是用-fPIC編譯的。在64位操作系統上將靜態庫(不帶-fPIC)鏈接到共享庫上
直到建立我recive: /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的源代碼...)
是否有任何解決方法使其工作?甚至當我將不得不編寫額外的應用程序的想法。
我希望我的問題不會重複(或多或少),因爲我花了很長時間尋找可能性。 謝謝,貝茲