【发布时间】:2014-01-09 06:46:59
【问题描述】:
我在 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 测试样本库
所有错误都围绕此代码:
enum Operation {
DELETE, INSERT, EQUAL
};
我认为这可能是我缺少的一些参考,但我已经添加了我能想到的所有内容,但仍然无法编译。
这些是我得到的唯一错误,所以我无法找出根本原因。
什么会使这个原本可编译的文件失败?
【问题讨论】:
-
该 .h 文件中可能存在与您的标识符冲突的错误 #define 宏。
-
@n.m.我确实去掉了那个单元测试文件。它只有 .h 引用,以及来自 WinUnit 的空
BEGIN_TEST函数。
标签: c++ visual-studio unit-testing compiler-errors google-diff-match-patch