質問

疲れた追加リンクを十ライブラリの私のプロジェクト、または必要として利用しました。このような既存ライブラリのようにlibpng.a libz.a libjpeg.a、組み合わせを一つのシングルです。図書室があります。そんなことが可能なのでしょうか?ウトを組み合わせlibに図書館?

役に立ちましたか?

解決

Unixのようなシステムのld ar電は可能です。チェック http://en.wikipedia.org/wiki/Ar_(Unix) またはルックアップのmanページを他のlinuxボックスやgoogleる。g'unix man ar'.

ご注意ください方が良いかもしれないオリンクの共有(動的)図書館があります。この追加の依存関係を実行が大幅に縮小する場合だけ書きグラフィック願います。

他のヒント

きの抽出元のオブジェクトファイルから図書館

ar x <library name>

そして合併して新たな図書館

ar cs <new library name> <list each extracted object file>

LinuxやMinGWやCygwinは、GNUツールチェーン:

ar -M <<EOM
    CREATE libab.a
    ADDLIB liba.a
    ADDLIB libb.a
    SAVE
    END
EOM
ranlib libab.a

やればできるの存在 liba.alibb.a:

ar crsT libab.a liba.a libb.a

Windowsでは、MSVCツールチェーン:

lib.exe /OUT:libab.lib liba.lib libb.lib

になったかもしれない誤解のない船舶は、libの場合は最終ユーザコード通話をうか?すべてのアクセスJpeg方法などからコード静的ライブラリをリンクは、libおlib.

I.。

----------------
| End-user exe |
----------------
      |
      | makes calls to
      |
      v
 --------------------
 | Your static lib.a | 
 --------------------
         | makes calls to and links
         v
     ------------------------------------ .....
     |                    |         |
  -------------    -------- ---------- 
  | libjpeg.a |    |libz.a| |libpng.a|
  -------------    -------- ----------

I.eで発行が終了コードのニーズに対して直接話をlibz.a libpng.る。

場合、アプリのコードについて正当な呼び出す必要はありlibz.では、例えば、そうとして上記の場合を用いた動的モジュールです。

PS:いいアバッジ?:)

なんなのかどのように物理的に結合して単一のファイルがるし、採用審査の用途に限り使用を抽出しようかなどのシングル"AllMyLibs.a/hであると同時に含ました。このままこの場所がコンパイラの検索図書館、その他。

P.S.-そんな些細な好奇心から、なぜ嫌い、シングルlib?

複数のサードパーティーのライブラリを一つの作成の問題だ--例えば、二つの図書館を定義する共通のシンボルプログラムを使用しません.けておいてくださいねを抽出すべての(又は全てが一つのインスタンスのシンボルごと結合します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top