私はC ++でプログラムを書き、そこから共有ライブラリが作成されます-そして、それはJNIによって使用されます。サードパーティのライブラリ ( libexample.a ) があり、それを共有ライブラリ ( libshared.so ) にリンクする必要があります。問題は、私が 64 ビット CentOS で作業していて、共有ライブラリを作成するには -fPIC が必要ですが、サードパーティのライブラリが -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 のソースコードがありません...)
それを機能させるための回避策はありますか?追加のアプリを作成する必要がある場合のアイデアも。
可能性を探すのに長い時間を費やしたので、私の質問が(多かれ少なかれ)重複していないことを願っています. ありがとう、ベズ