Ошибка BuildFailed: невозможно собрать C ++ SDK Helloworld с помощью qibuild - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь установить 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 &, std :: __ cxx11 :: basic_string, std :: allocator> const &, int, std :: __ cxx11 :: basic_string, std :: allocator> const &, int, int, std :: __ 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 qi ::log :: LogStream :: ~ LogStream () ':

....

CMakeFiles / testhelloworld.dir / build.make: 113: рецепт для цели'sdk / bin / testhelloworld 'не удалось сделать [2]: * [sdk / bin / testhelloworld] Ошибка 1 CMakeFiles / Makefile2: 67: рецепт для целевого файла «CMakeFiles / testhelloworld.dir / all» не удалось сделать[1]: * [CMakeFiles / testhelloworld.dir / all] Ошибка 2 Makefile: 129: рецепт для цели 'all' не выполнен make: *** [all] Ошибка 2

[ERROR]:BuildFailed Произошла ошибка при построении проекта hello world

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

У меня была такая же проблема с Fedora 29 ... После нескольких часов поиска я обнаружил, что добавление набора (CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI = 0") в файл CMakeLists.txt устранило проблему.

Iнашел решение здесь: gcc, используя стандарт c ++ 11, хотя 98 явно указано

0 голосов
/ 08 ноября 2018

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

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

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

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

...