4

だから私は、たとえば、にlibA.a libB.a libC.a libD.soリンクされているいくつかのコードを持っていlibPack.aます。後で、libFinal.solibPack.a にリンクするものを作成し、libFinal.so が最終的に実行可能ファイルで使用されます。

リンカーが静的ライブラリを作成すると、すべての動的ライブラリが解決され、コンパイル時に静的ライブラリ内に含まれると思います。-fPIC( ) サードパーティの静的ライブラリでも同じことを行いますか?

libFinal.soCMake を使用して、多数の静的ライブラリと共有ライブラリを 1 つの巨大なスタンドアロン ライブラリに結合するにはどうすればよいですか? それが不可能な場合、すべての lib 依存関係をクライアントに提供する必要があるということですか?

実行可能ファイルを依存関係なし (なしlibA...D)のダミー ライブラリで動作させることができましたが、 libA..D. 私の推測では、静的ライブラリは 内libPack.aに含まれていませんが、何が起こっているのかわかりません。

4

1 に答える 1

0

次の回答が役に立つかもしれません: 複数の C/C++ ライブラリを 1 つに結合する方法は? 複数の .so 共有ライブラリ を マージする

これがニーズを満たしている場合は、CMake スクリプトを構成して、ライブラリを libFinal.so に結合し、さらに libFinal.so を実行可能ファイルにリンクするプレリンク イベントをプロジェクトに追加できます。

于 2013-05-14T18:22:47.047 に答える