2

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

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

我删除了他们的示例文件,并开始引用我想要测试 的Google 的 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 TestSampleLib

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

所有错误都围绕此代码:

enum Operation {
   DELETE, INSERT, EQUAL
};

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

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

什么会使这个原本可编译的文件失败?

4

1 回答 1

2

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

于 2014-01-09T08:32:12.633 回答