4

これは私が得る出力ですdumpbin AchievementsTable.obj /HEADERS

Microsoft (R) COFF/PE Dumper Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file AchievementsTable.obj

File Type: ANONYMOUS OBJECT

ANON OBJECT HEADER VALUES
               1 version
             14C machine (x86)
        4C51334D time date stamp Thu Jul 29 08:52:45 2010
                 ClassID: {0CB3FE38-D9A5-4DAB-AC9B-D6B6222653C2}
            945F size
               0 flags

私のソースはすべてこれを行います。私は VisualStudio 2005 を使用しています。実際には、.exe がリンクして正しく実行されるため、多くの COMDAT がエクスポートされていることを知っています。避けるべきコンパイラ スイッチはありますか? ここに私が使用しているものがあります:

/O1
/Ob2
/Oi
/GT
/GL
/I "..\dxsdk\include" <lots of include paths>
/D "WIN32" <lots of #defines>
/GF
/FD
/MT
/GS-
/Gy
/arch:SSE2
/fp:fast
/GR-
/Fo <directory specified>
/Fd <pdb filename specified>
/FR <directory specified>
/W4
/c
/Zi
/TP .\Source\databases\AchievementsTable.cpp

私は一般的に私の選択についてコメントを受け付けていますが、DumpBin の使用がこの質問の焦点です: 男の子と女の子、それを取り除いてください...

4

1 に答える 1

9

削除の 1 日後、DUMPBIN のドキュメントが少し曖昧であることがわかりました。

COMDAT 出力を取得するには、関数レベルのリンク (/Gy) をオンにする必要があります。クロス モジュール最適化 (/GL) をオンにすると、コード生成がリンク時間まで遅延します。したがって、ヘッダー情報が /GL でコンパイルされたコードで利用できるのは事実ですが、非常に制限されています。これが、DUMPBIN で使用できる唯一のオプションである理由です。他のすべてのオプションには、より多くの情報が必要であり、その生成は /GL によって遅延されます。

于 2010-07-30T07:25:52.893 に答える