Linux — ошибка BuildFailed: невозможно собрать C ++ SDK Helloworld с помощью qibuild

Я пытаюсь установить NaoQI C ++ SDK в Linux 18.04.1 (VirtualBox). Я следовал этой инструкции по установке: http://doc.aldebaran.com/2-1/dev/cpp/install_guide.html

Моя проблема в части E. Шаг 3, когда я пытаюсь запустить «qibuild make»

Я получаю эту ошибку, когда пытаюсь построить пример helloworld:

CMakeFiles / testhelloworld.dir / testhelloworld.cpp.o: в функции
main':
/home/nounou/Documents/SDKfolder/naoqi-sdk/doc/dev/cpp/examples/core/helloworld/testhelloworld.cpp:35:
undefined reference to
AL :: ALBroker :: createBroker (std :: __cxx11 :: basic_string, std :: allocator> const&,
станд :: __ cxx11 :: basic_string,
std :: allocator> const&, int, std :: __cxx11 :: basic_string, std :: allocator> const&, int, int,
станд :: __ cxx11 :: basic_string,
std :: allocator>, bool) ‘
/home/nounou/Documents/SDKfolder/naoqi-sdk/doc/dev/cpp/examples/core/helloworld/testhelloworld.cpp:38:
неопределенная ссылка на
AL::ALProxy::ALProxy(boost::shared_ptr<AL::ALBroker>,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, int, int)'
CMakeFiles/testhelloworld.dir/testhelloworld.cpp.o: In function
ци :: войти :: LogStream :: ~ LogStream () ‘:

….

CMakeFiles / testhelloworld.dir / build.make: 113: рецепт для цели
Ошибка ‘sdk / bin / testhelloworld’ make [2]: * [sdk / bin / testhelloworld] Ошибка 1 CMakeFiles / Makefile2: 67: рецепт для цели
CMakeFiles / testhelloworld.dir / all не удалось сделать [1]: *

[CMakeFiles / testhelloworld.dir / all] Ошибка 2 Makefile: 129: рецепт для
цель ‘all’ не выполнена make: *** [all] Ошибка 2

[ОШИБКА]: ошибка BuildFailed возникла при создании проекта hello world

Пожалуйста, помогите мне, если у вас есть представление о том, в чем проблема. Спасибо!

0

Решение

Скорее всего, у вас возникла проблема несовместимости ABI из-за перехода на C ++ 11. Вы используете Ubuntu 18.04, компиляторы которого настроены для связи с современными библиотеками C ++, но цепочка инструментов скомпилирована с прежними ABI и не применяет флаги компилятора для обеспечения совместимости.

Чтобы обойти это, либо:

  • Установите флаги компилятора, чтобы не связываться с библиотеками C ++ 11 (если кто-то их знает, поделитесь).
  • Скомпилируйте для робота вместо вашей машины, используя перекрестную цепочку инструментов вместо цепочки инструментов Linux.
  • Используйте Ubuntu 12.04, как сказано в руководстве по установке.

Кстати, в руководстве по установке C ++, подразделе E.4, сказано, чтобы компилировать пример в core/sayhelloworld, Здесь вы собрали пример под core/helloworld,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]