如何告诉 buildroot 在主机工具链中包含 boost

问题描述 投票:0回答:1

我正在替换旧的交叉编译工具链,但我不知道如何让 buildroot 包含像旧工具链那样的

host/.../sysroot/usr/include/boost

背景:

我正在尝试构建一个 docker 映像,可用于在 GitHub Actions 中为 MiyooCFW 交叉编译软件。这是我的当前 Dockerfile

项目从 uClibc 迁移到 musl libc,这就是工具链需要更新的原因。

实际有效的旧工具链是 Google Drive 上的 .zip 文件。我认为它可能是在这个

buildroot fork
中使用 Makefile.legacy 构建的。较新的使用
make sdk
和主
Makefile
。 (有一些文档,但不完整。)

我安装了

libboost-all-dev
,它将库放入
/usr/include/boost/
中,但仅安装它们显然是不够的。

GMenuNX是我正在尝试交叉编译的一个示例程序,它依赖于boost。

steward
分支使用带有旧工具链的docker镜像,并且编译成功
ci
分支使用我的新 docker 镜像,并且 fails 为:

/opt/miyoo/bin/arm-linux-g++ -ggdb -DTARGET_MIYOO -DTARGET=miyoo -D__BUILDTIME__="\"2022-02-19 18:33\"" -DLOG_LEVEL=3 -I/opt/miyoo/arm-buildroot-linux-musleabi/sysroot/usr/bin/../../usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/miyoo/usr/include/ -I/opt/miyoo/arm-buildroot-linux-musleabi/sysroot/usr/include/  -I/opt/miyoo/arm-buildroot-linux-musleabi/sysroot/usr/include/SDL/ -o objs/miyoo/src/selector.o -c src/selector.cpp
src/selector.cpp:34:10: fatal error: boost/algorithm/string.hpp: No such file or directory
  34 | #include <boost/algorithm/string.hpp>
     |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile.miyoo:31: objs/miyoo/src/selector.o] Error 1
Error: Process completed with exit code 2.

我还尝试手动复制 boost 库,但这只是给我带来了一堆不同错误

最后,如果还不是很明显的话,我在 buildroot、交叉编译等方面完全是个菜鸟。我什至不经常使用 c++。我很可能错过了一些明显的事情。

linux docker boost cross-compiling buildroot
1个回答
3
投票

如果您希望 Buildroot 工具链包含 Boost 库,请在 Buildroot 配置中启用 Boost 包:BR2_PACKAGE_BOOST=y。它有许多子选项,请确保启用与您相关的子选项。

在您的计算机上安装 Boost 对工具链 sysroot 中可用的库的影响绝对为零。

© www.soinside.com 2019 - 2024. All rights reserved.