【发布时间】:2010-05-10 20:00:17
【问题描述】:
我正在使用 Visual Studio 2005 的 cl.exe 编译器。我用一堆 /I /D 和一些编译/优化标志(例如:/Ehsc)来调用它。
我有两个编译脚本,两者仅在 /I 标志上有所不同(包含目录不同)。所有其他标志都是相同的。这些脚本产生不同的目标文件(不仅仅是下面提到的时间戳差异)。奇怪的是,两个脚本的 /E 输出是一样的。这意味着包含文件不会导致目标文件的差异,但话说回来,差异来自哪里?
谁能解释我在我的情况下如何看到两个不同的目标文件。如果包含文件导致差异,我怎么会看到相同的 /E 输出?
PS。目标文件不仅在时间戳方面有所不同,而且在代码部分也有所不同。事实上,我的最终可执行文件的行为在这两种情况下都是不同的。
编辑:PSS:我什至查看了 cl.exe 的 /includeFiles 输出,该输出是相同的。然而,目标文件的不同不仅仅在于时间戳(事实上,一个比另一个大 1KB!)
【问题讨论】:
标签: include preprocessor flags cl.exe