仅在添加第二个项目后才能在一个项目中编译错误

时间:2014-01-09 06:46:59

标签: c++ visual-studio unit-testing compiler-errors google-diff-match-patch

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

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

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

所有错误都围绕此代码:

enum Operation {
   DELETE, INSERT, EQUAL
};

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

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

什么可以使这个可编译的文件失败?

1 个答案:

答案 0 :(得分:2)

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