6

複数の静的ライブラリまたはオブジェクト ファイルにリンクする場合、順序が重要であることはわかっています (依存ライブラリは依存関係の前にリストする必要があります)。arでライブラリ ファイルを作成するときに、この同じルールが適用され、ライブラリ内の順序が重要なのか、同じ.aファイル内で違いがないのかを知りたいです。
複雑な依存関係グラフを含む 200 以上のオブジェクト ファイルをパックして、

ar rcs mylib.a objs/*.o

正しい順序でリストするよりもはるかに簡単です。

gcc違いがあれば、使用しています。

4

1 に答える 1

8

ライブラリ内の順序は、は重要でした。

15 ~ 20 年より新しい UNIX システムでは、もはや問題ではありません。からman ranlib:

   An archive with such an index speeds up linking to the library
   and allows routines in the library to call each other without
   regard to their placement in the archive.

ほとんどの非古代 UNIX システムは__.SYMDEF、アーカイブ ライブラリの構築中に (上記のインデックスを含む) を自動的に生成するか、リンク時にメモリ内に構築します。

于 2011-12-29T23:07:06.547 に答える