私は自分の問題の解決策を探して、いくつかの手がかりを得ましたが、一貫した解決策を見つけることができませんでした:3つの静的ライブラリ(libone)の機能を使用するダイナミックライブラリ(libdyna.so)のコードがあります。 a、libtwo.a、libthree.a)およびlog4cppライブラリ。そして、最初にすべてが正常に見えたときにビルドしたとき、「libdyna.so」を作成できましたが、ラッパー(jniラッパーは正常に動作します)を介してJavaテストプログラムでテストすると、未定義の参照がたくさんありました。
次に、makeファイルに「-zdefs」フラグを設定すると、未定義の参照が多数表示され、ダイナミックライブラリを再度コンパイルできませんでした。
3つの静的ライブラリを使用して「nm」コマンドを作成しました。これにより、dynalibで使用するすべての関数が正しくエクスポートされます。しかし、3つの静的ライブラリを含む「libdyna.so」上でnmを作成すると、未定義のシンボル(関数)が見つかりました。
動的なものを作りたいときに、リンカーにフラグを追加するようなものでなければならないと思いますが、本当にわかりません。誰かが私を助けてくれますか、または私にいくつかのアイデアを教えてもらえますか?コードが必要な場合はお知らせください。ここに貼り付けます。どうもありがとう。
P / D:英語が下手でごめんなさい。