仅在添加第二个项目后编译一个项目的错误

Compile errors with one project only after adding a second project

本文关键字:项目 一个 错误 编译 添加 第二个      更新时间:2023-10-16

我在VS2012中有一个编译良好的解决方案。我想为它写一些单元测试,并找到了WinUnit。

为了方便起见,我将WinUnit测试项目引入了我的解决方案中。

我剥离了他们的样本文件,开始引用我想要测试的谷歌diff_match_patch副本。

一旦我将.h文件添加到我的项目中并进行编译,diff_match_patch文件中就会出现3个错误。在我添加新项目之前,这个文件编译得很好。

错误3错误C2059:语法错误:'('…\diff_match_patch.h 103 1 TestSampleLib

错误4错误C2143:语法错误:缺少";"在"}"之前。。。\diff_match_patch.h 104 1测试样本库

错误5错误C2238:";"前面的意外标记。。。\diff_match_patch.h 104 1测试样本库

所有错误都围绕着这个代码:

enum Operation {
DELETE, INSERT, EQUAL
};

我想这可能是我缺少的一些参考,但我已经添加了我能想到的所有内容,它仍然无法编译。

这些是我唯一的错误,所以我无法找出根本原因。

是什么导致这个原本可编译的文件失败?

似乎是宏名称污染。您可以尝试在枚举定义之前#undef所有名称,看看会发生什么。