Boost asio 的编译问题

Compiling issue with Boost asio

我的目标是在我的主机上使用 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: fatal error: boost/asio.hpp: No such file or directory include ^~~~~~~~~~~~~~~~ compilation terminated. : recipe for target 'main' failed make: *** [main] Error 1

我认为 Boostasio.hpp 有问题。 boost 库是否包含在我的 Yocto Linux 图像中? asio.hpp 有什么问题? 我该如何解决这个问题? 谢谢

我刚刚注意到,实际上,您使用的不是 SDK,而是仅包含 glibc 以及一些基本工具和 gdb 的工具链;通常用于构建测试应用程序和调试。因此,您需要构建真正的 SDK,其中除了工具链之外,还包含安装在映像 rootfs 中的包的开发版本(libs/headers/other 文件)。这可以通过以下方式完成:

bitbake -c populate_sdk <your_image>

构建 SDK 后,您需要通过生成的安装程序脚本安装它。另外,在开始工作之前不要忘记获取环境设置脚本!

更多信息请参考https://www.yoctoproject.org/docs/latest/sdk-manual/sdk-manual.html#sdk-building-an-sdk-installer