0

2 つの AIX システムで同じソースを使用してビルドされた 2 つのバイナリ間で、シンボルにいくつかの違いが見られます。「メイン」の一例:


xxxx1: .main                T  4294975624

xxxx2: .main                T  4294969472         516
xxxx2: main:F-1             -           0

サイズの違いはなぜ?

'T' はマニュアル ページによるグローバル テキスト シンボルです。「フ」とは?

また、2 つのバイナリのサイズは大きく異なります: 3924048 対 17701460 です。なぜですか?

AIX のバージョン、コンパイラのバージョン、makefile (同じ CFLAGS) は同一です。

4

1 に答える 1

0

F-1 は int を返す関数だと確信しています。これは、コンパイラが -g オプションを指定したときに出力される「stab」文字列です。それもサイズの違いの理由でしょう。

「サイズ」と「サイズ」を試してみませんか。size には、より冗長にするオプションもあります。「ファイル」などを実行することもでき、ストリップされているかどうかがわかります。

リンク時の -g フラグと strip フラグの間で、表示されている違いが説明されると思います。

HTH

于 2013-03-22T02:01:57.640 に答える