Макро определить про cxxtest

Я использую cxxtest4.0.3 под vc6, чтобы сделать тест. Во-первых, отчет компилятора 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 ответ

Решение

У меня нет доступа к MS Visual Studio 6, но разве это не слишком архаично? Он был выпущен в июне 1998 года в соответствии с Википедией, а первый стандарт C++ был выпущен в ноябре 1998 года. Поэтому я подозреваю, что ваш компилятор C++ слишком стар для поддержки cxxtest.

Вы можете посмотреть на вариант cxxgentest:

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

Вы можете проверить другие варианты с cxxgentest --help,


Не сильно поможет вам сказать, что cxxtest 4.0.3 работал найти на MacOS X 10.7.3 с G ++ 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
Другие вопросы по тегам