1 つの実行可能プロジェクトでそれを使用して、異なるライブラリをリンクすることに問題があります。
foo()
プロジェクト A に;という名前の関数が含まれているとします。静的ライブラリとしてコンパイルされます。
プロジェクト B には という名前の関数が含まれておりbar()
、A からのヘッダーが含まれており、共有ライブラリとして , , でコンパイルされて-Wl
い--whole-archive libA.a -Wl
ます--no-whole-archive flags
。
libB.so は に移動されました/usr/lib
。
現在、プロジェクト C にはB.h
、 呼び出しが含まれていますが、プロジェクト A で定義された関数bar()
への参照が未定義であるため、コンパイルされませんでした。foo()
nmlibB.so
言います:
U foo
私は gcc を使用しています。プログラミング言語は C、IDE は Eclipse CDT です。
この問題を解決するためのアイデアやヒントを持っている人はいますか?
ありがとうございました。