Visual Studio 2005のcl.exeコンパイラを使用しています。/I/Dといくつかのコンパイル/最適化フラグ(例:/ Ehsc)を付けて呼びます。cl.exe/E出力が同じでフラグが同じ場合のオブジェクトファイルの相違
私は2つのコンパイルスクリプトを持っていますが、どちらも/ Iフラグでのみ異なります(インクルードディレクトリは異なります)。その他のフラグはすべて同じです。これらのスクリプトは、異なるオブジェクトファイルを生成します(以下に記載されているタイムスタンプの違いだけではありません)。奇妙なことは、両方のスクリプトの/ E出力が同じであることです。これは、インクルードファイルがオブジェクトファイルの違いを引き起こさないことを意味しますが、違いはどこから来ますか?
私の状況で2つの異なるオブジェクトファイルがどのように表示されているのか解明できます。インクルードファイルが違いを引き起こしている場合、どのようにして同一の/ E出力が表示されますか?
PS。オブジェクトファイルは、タイムスタンプだけでなく、コードセクションでも異なります。実際、最終実行ファイルの動作は、どちらの場合でも異なります。
編集:PSS:私もcl.exeの/ includeFiles出力を見て、その出力は同じです。しかし、オブジェクトファイルはタイムスタンプだけではありません(実際には1KBは別のものよりも1KB大きくなります)。
この場合、/ E出力が異なるはずはありませんか?/Eフラグは、プリプロセッサの出力を示します。 –