C++ 11 в vxworks

Я новичок в VxWorks и занимаюсь разработкой программного обеспечения с использованием C++ на платформе VxWorks. Я хочу знать, поддерживает ли компилятор VxWorks стандарт C++ 11. Причина, по которой я задаю этот вопрос, заключается в том, что отсутствует функция std::vector для shrink_to_fit () (эта функция введена в стандарте C++ 11). Поэтому я хочу знать, есть ли способ компилировать код со стандартом C++ 11 в VxWorks.

3 ответа

Для vxWorks доступны коммерческие версии g++, которые поддерживают C++11. Насколько я знаю, эти порты g++ доступны для vxWorks 7.0 или выше.

Я предполагаю, что вы используете компилятор WindRiver (diab), который также используется для нашей платформы VxWorks. Если это так, я нашел на их сайте PDF-файл, в котором довольно четко указано, что они совместимы только до C++03.

Ссылка на PDF

Поддержка ANSI C89, C99 и C++ 2003

Очевидно, VxWorks также имеет поддержку компиляторов GNU и ICC, но я не так хорошо знаком с тем, как они работают с VxWorks.

Только в VxWorks 7. Diab, который поставляется с VxWorks7, по-прежнему не поддерживает C++ 11.

GnatPro 17.1 поставляется с gcc 6.2.1 и работает с VxWorks.

Вы можете быть заинтересованы в: http://en.cppreference.com/w/cpp/compiler_support

Последняя версия vxworks поставляется с поддержкой C++17 (C++17, Boost, Python и коллекция Rust)https://www.windriver.com/news/press/pr.html?ID=22444

В новом Vxworks 7 SR600 C++11 поддерживается компилятором clang.

Я работал во встроенных системах реального времени около 25 лет, в основном в авионике, и, насколько я помню, стандартные библиотеки шаблонов обычно не допускаются из-за использования неконтролируемого распределения динамической памяти и неконтролируемого создания потоков. Возможно, это изменилось, но, вероятно, именно поэтому большинство разновидностей VXworks избегают STL.

Другие вопросы по тегам