1

我在vc6下使用cxxtest4.0.3做测试。一开始编译报告strcmp不是std的成员。在我将 CXXTEST_OLD_STD 宏添加到项目设置后,编译器在“CXXTEST_STD(string) _s;”行报告缺少字符串的类型信息。

我应该如何设置宏定义?先谢谢了。

这是示例代码:

#include <cxxtest/TestSuite.h>
class CSimpleTest : public CxxTest::TestSuite  
{  
public:  
    void testCxx(void){TS_ASSERT(10 == 0); }  
};

这是错误消息:
error C2039: 'strcmp' : is not a member of 'std'
cxxtest\testmain.h 中的行报告错误消息:

if ((CXXTEST_STD(strcmp)(argv[i],"-h")==0) || (CXXTEST_STD(strcmp)(argv[i],"--help")==0)) { 
4

1 回答 1

1

我无法访问 MS Visual Studio 6,但这不是有点过时吗?根据Wikipedia ,它于 1998 年 6 月发布,第一个 C++ 标准于 1998 年 11 月发布。所以,我怀疑您的 C++ 编译器太旧,无法被cxxtest支持。

您可以查看以下选项cxxgentest

--no-std              Do not use standard library (even if found in tests).

您可以使用 来检查其他选项cxxgentest --help


告诉您 cxxtest 4.0.3 在带有 G++ 的 MacOS X 10.7.3 上工作 find 并没有多大帮助i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00),但它确实 - 或者,至少,您的示例程序编译为目标文件而没有以下警告:

bin/cxxtestgen -o cxt.cpp test.simple.cpp
g++ -I. -c -Wall -Wextra -o cxt.o cxt.cpp
于 2012-04-25T06:54:36.540 回答