私は1つのスタティックライブラリlibhelper.a
と私の実際の共有オブジェクトライブラリlibtestlib.so
を持つプロジェクトを持っています。私の目標は、libhelper.a
をlibtestlib.so
にリンクすることです。 Linux/BSDで可能ですか?私がしようとしたテストプログラムを作成したとき、私は次のエラーを得た:スタティックライブラリと共有ライブラリの混在
./prog1:/usr/local/lib/libtestlib.so.1.0:未定義のシンボル「」
私の推測がありますlibhelper.aは-fPIC
でコンパイルされていないため、libtestlib.so
はコンパイルされていないために発生しています。静的ライブラリにも依存する共有ライブラリを使用するプログラムを構築する適切な方法は何ですか?
ありがとうございます!
"libhelper.aをlibtestlib.soにリンクする"とは何ですか? –
これまでに何を試しましたか?いずれの場合でも、PIC以外のコードを共有ライブラリにリンクする方法はわかりません。静的ライブラリは通常、実行可能ファイルにのみリンクされているため、PICでコンパイルされることはめったにありません。両方のライブラリを実行可能ファイルにリンクすることはできませんか、最初からPICを使用して両方のライブラリを構築することはできませんか? – Philipp