0

静的ライブラリのサイズを縮小するためのコンパイラ オプションとその他のメカニズムは何ですか?

OS : VxWorks コンパイラ : GCC 言語 : C

4

4 に答える 4

3

-Osコード サイズを小さくするために最適化し-g、その他のデバッグ オプションを除外するために使用します。

于 2010-11-16T10:51:14.887 に答える
2

静的ライブラリをリンクした後に実行可能ファイルのサイズが気になる場合は、各ソース ファイル (つまりオブジェクト ファイル) に関数を 1 つだけ配置する必要があります。リンカは通常、リンク中にスタティック ライブラリからオブジェクト ファイル全体をプルします。

于 2010-11-16T20:41:12.280 に答える
1

最終イメージに静的ライブラリを含める必要がありますか? 静的ライブラリはリンク時に実行可能ファイルにリンクされるため、動作するコンパイラ/リンカーを使用してシステムを作成しない限り、静的ライブラリを安全に削除できます。動的ライブラリは別の話です...

静的ライブラリのサイズを縮小する必要がある場合は、適切なオプションで「strip」を使用してください。オプションなしで "strip mylib.a" を実行すると正しく動作するはずですが、いくつかのオプションを追加するとライブラリが小さくなる可能性があります。リンカはその「魔法」を行うためにこのテーブルを必要とするため、ライブラリからシンボル テーブルを削除しないように注意してください。

于 2010-11-16T17:48:12.943 に答える
0

--ffunction-sectionsandを使用できます--fdata-sections。これは、gcc に各関数とグローバル データ変数をオブジェクト内の個別のセクションに配置するように指示します。すべてのソース ファイルを変更する必要はありません。

于 2011-11-03T17:17:41.913 に答える