Я хочу построить приложение C ++ для eCos на процессоре ARM. Моя программа требует несколько стандартных заголовочных файлов C ++, таких как vector, iostream, list, …
Мой вопрос: как мне этого добиться? У кого-нибудь есть опыт создания и развертывания приложений C ++ для eCos?
Когда я использую компилятор arm-eabi-g ++ для компиляции приложения, я получаю следующую ошибку
fatal error: vector: No such file or directory
это означает, что векторной библиотеки C ++ нет.
Однако компилятор arm-none-eabi-g ++ включает в себя эти стандартные заголовочные файлы. Я получаю следующие ошибки для »:
In file included from /opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/bits/locale_facets.h:43:0,
from /opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/bits/basic_ios.h:39,
from /opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/ios:45,
from /opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/ostream:40,
from /opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/iostream:40,
/opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/arm-none-eabi/bits/ctype_base.h:44:35: error: '_U' was not declared in this scope
/opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/arm-none-eabi/bits/ctype_base.h:45:32: error: '_L' was not declared in this scope
/opt/arm-2010.09/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/include/c++/4.5.1/arm-none-eabi/bits/ctype_base.h:46:32: error: '_U' was not declared in this scope
...
Могу ли я использовать компилятор arm-none-eabi-g ++ для eCos? Если да, как мне решить эти ошибки? Если нет, что мне делать?
Спасибо заранее!
vector, list
они в основном принадлежат Standard template library
, Для Ecos может быть что-то подобное, доступное аналогично BOOST
,
Я думаю, что вы можете проверить эта ссылка
Тебе нужно ustl
, Увидеть Использование uSTL в приложениях eCos.
Вот краткий пример использования vector
,
Вы должны включить
#include <ustl.h>
Тогда вы можете создать экземпляр вектора следующим образом:
ustl::vector<int> v(2);