-E
と-P
のオプション(vxWorksベースの組み込みプラットフォーム用にGCC 4.1.2を使用)を使用して前処理するソースファイルがあります。他のすべてのオプションは、ファイルをコンパイルするときと同じです。これらのオプションは、前処理済みのファイル変更をあらかじめコンパイルする
-Wall
-march=pentium
-nostdinc
-O0
-fno-builtin
-fno-defer-pop
-g
-c
-o
とすべてのインクルードパスです。この前処理されたファイルをコンパイルすると、元のファイルを直接コンパイルした場合よりも、結果として得られるオブジェクトファイルがはるかに小さくなります(約30%)。そして、私がプログラムをリンクすると、リンカは、元のソースファイルを使用しているときに再び発生しない、シンボルの欠落(ユーザコード内のすべて)について苦情を言います。なぜ違いがありますか?この仕事をする方法はありますか?
何も削除せずに '-E'と' -P'フラグを追加するだけでオブジェクトファイルを作成するルールを修正していますので、私は正しいコンパイラを使用していると確信しています。定義。 –