Проблема компиляции с Boost asio - PullRequest
0 голосов
/ 02 июля 2019

Моя цель - кросс-компилировать файл кода с Yocto SDK на моей хост-машине, чтобы сделать его исполняемым на моей целевой плате.Я использую SUMO версию Yocto и GCC 7.3 кросс-компилятор .

Прежде всего, чтобы получить кросс-компиляцию YOCTO, я создал файл Hello.c:

#include <stdio.h>
int main(void)
{
   printf ("Hello World!\n");
   return 0;
}

Я скомпилировал файл, выполнив: make hello

Теперь у меня есть скомпилированный файл, который готов к выполнению на моей целевой плате.

Но теперь у меня несколькоФайлы .h и несколько файлов .cpp и основной файл.Когда я выполняю основной файл следующим образом: make main возникает ошибка:

main.cpp: 10: 10: фатальная ошибка: boost / asio.hpp: такой файл или каталог не содержит ^ ~~~~~~~~~~~~~~~ компиляция прекращена.: рецепт для цели 'main' не выполнен make: *** [main] Ошибка 1

Я думаю, что у меня проблема с Boost и asio.hpp .Включена ли библиотека наддува в мой образ Yocto Linux?В чем проблема с asio.hpp?Как я могу это исправить, пожалуйста?Спасибо

1 Ответ

1 голос
/ 02 июля 2019

Я только что заметил, что на самом деле вы используете не SDK, а набор инструментов, который включает в себя только glibc вместе с некоторыми базовыми инструментами и gdb;обычно используется для создания тестовых приложений и отладки.Таким образом, вам нужно собрать реальный SDK, который содержит, помимо набора инструментов, версию dev (libs / headers / other files) пакетов, установленных в rootfs вашего образа.Это можно сделать следующим образом:

bitbake -c populate_sdk <your_image>

После сборки SDK его необходимо установить с помощью сгенерированного сценария установщика.Кроме того, не забудьте написать сценарий настройки среды перед началом работы!

Для получения дополнительной информации см. https://www.yoctoproject.org/docs/latest/sdk-manual/sdk-manual.html#sdk-building-an-sdk-installer

...