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
我认为 Boost 和 asio.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
我的目标是在我的主机上使用 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
我认为 Boost 和 asio.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