关于cxxtest的宏定义

时间:2012-04-21 01:53:02

标签: cxxtest

我在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); }  
};

以下是错误消息:
错误C2039:'strcmp':不是'std'的成员 cxxtest \ testmain.h中的行报告错误消息:

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

1 个答案:

答案 0 :(得分:1)

我无法访问MS Visual Studio 6,但在古老的一面是不是有点?它于1998年6月根据Wikipedia发布,第一个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 ++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)的MacOS X 10.7.3上工作没有多大帮助,但它确实 - 或者,至少,你的示例程序编译为目标文件没有警告:

bin/cxxtestgen -o cxt.cpp test.simple.cpp
g++ -I. -c -Wall -Wextra -o cxt.o cxt.cpp