我们试图通过使用 TEST_GROUP_BASE 创建共享基类来减少代码重复。当我们尝试在多个测试类中使用此 TEST_GROUP_BASE 时,我们会收到链接器警告,抱怨 'getwchar' 和 'putwchar':不一致的 dll 链接和错误报告这两个函数的多个定义,以及许多其他 'char'/ 'wchar' 对(例如 strchr/wcschr、strpbrk/wcspbrk)。如果我只包含一个使用 TEST_GROUP_BASE 宏的测试文件,则不会出现链接器错误。
基类在 .h 文件中定义为 TEST_BASE,所有成员函数都内联。然后,此 .h 文件包含在派生的测试文件中,其中 TEST_GROUP_BASE 宏用于合并共享的 TEST_BASE。我错过了什么吗?
我没有找到任何使用 TEST_GROUP_BASE 的例子,所以我不确定我是否错过了一个关键的配置。我们正在测试遗留 C 代码,但所有对生产代码的引用都在 extern "C" 大括号内进行,因为我们的简单测试通过了,这表明 c/c++ 链接正常。
任何人都可以提出任何可能的原因,或者指出我在其他地方如何使用 TEST_GROUP_BASE 的任何开源示例的方向吗?
开发环境为VS2010。