Макро определить про 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