我在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
};
我认为这可能是我缺少的一些参考,但我已经添加了我能想到的所有内容,但它仍然无法编译。
这是我遇到的唯一错误,所以我无法找出根本原因。
什么可以使这个可编译的文件失败?
答案 0 :(得分:2)
似乎是宏名污染。您可以尝试在枚举定义之前#undef所有名称,看看会发生什么。