我在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)) {
答案 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