Я пытаюсь скомпилировать CppUtest как библиотеку в IAR workbench v6.3.3 для AVR UC3C0512C в Windows 7 x64, но когда я его компилирую, он говорит, что пространство имен std не определено.
Вот фрагмент кода, где я получаю первую ошибку, файл SimpleString.h:
#if CPPUTEST_USE_STD_CPP_LIB
#include <string>
#include <stdint.h>
SimpleString StringFrom(const std::string& other);
Последняя строка содержит std :: string, и это приносит мне 190 ошибок, связанных с этим. Сообщение:
Error[Pe276]: name followed by "::" must be a class or namespace name
C:\COM\SRC\cpputest35\include\CppUTest\SimpleString.h 143
Я попытался с помощью строки ниже, но это не помогает:
using namespace std;
В разделе «Конфигурация библиотеки» я выбираю «Нормальная DLIB», я также пытался использовать «Full DLIB», но IAR не видит библиотеку «std».
Есть идеи, пожалуйста?
Согласно руководствам IAR
The std namespace is not used in either standard EC++ or in Extended EC++. If you
have code that refers to symbols in the std namespace, simply define std as nothing;
for example:
#define std // Nothing here
Других решений пока нет …