为 ARM 交叉编译 boost 1.7 Raspberry pi 3

Cross-compiling boost 1.7 for ARM Raspberry pi 3

我正在尝试为我的 raspberry 项目准备好 boost 交叉编译。到目前为止,我已经对我的项目进行了交叉编译 运行,但现在我需要开始使用一些增强功能。 为了做到这一点,我正在尝试编译它并且我正在遵循许多指南(主要指南是 this 一个)但是我在执行 bjam 时遇到了一些错误:

./bjam install toolset=gcc-arm --prefix=~/libs/ --disable-long-double --sNO_ZLIB=1 --sNO_BZIP2=1

我通过将 project-config.jam 文件修改为 using gcc : arm : arm-linux-gnueabi-g++ ;

来识别工具链

我在我的 windows 10 上使用 WSL debian 来完成这一切。你会在路径上看到它。

这是我遇到的错误:

*** argument error
* rule numbers.less ( n1 n2 )
* called with: ( 4 )
* missing argument n2
/mnt/d/Downloads/boost_1_70_0/tools/build/src/util/numbers.jam:66:see definition of rule 'numbers.less' being called
/mnt/d/Downloads/boost_1_70_0/tools/build/src/tools/common.jam:854: in common.format-name
/mnt/d/Downloads/boost_1_70_0/tools/boost_install/boost-install.jam:87: in boost-install.generate-cmake-variant-
/mnt/d/Downloads/boost_1_70_0/tools/build/src/kernel/modules.jam:107: in modules.call-in
/mnt/d/Downloads/boost_1_70_0/tools/build/src/util/indirect.jam:105: in indirect.call
/mnt/d/Downloads/boost_1_70_0/tools/build/src/build/virtual-target.jam:902: in execute
/mnt/d/Downloads/boost_1_70_0/tools/build/src/build/virtual-target.jam:821: in class@action.actualize
/mnt/d/Downloads/boost_1_70_0/tools/build/src/build/virtual-target.jam:332: in actualize-action
/mnt/d/Downloads/boost_1_70_0/tools/build/src/build/virtual-target.jam:518: in actualize-no-scanner
/mnt/d/Downloads/boost_1_70_0/tools/build/src/build/virtual-target.jam:142: in class@virtual-target.actualize
/mnt/d/Downloads/boost_1_70_0/tools/build/src/build-system.jam:810: in load
/mnt/d/Downloads/boost_1_70_0/tools/build/src/kernel/modules.jam:295: in import
/mnt/d/Downloads/boost_1_70_0/tools/build/src/kernel/bootstrap.jam:139: in boost-build
/mnt/d/Downloads/boost_1_70_0/boost-build.jam:17: in module scope

对此我很迷茫。上周我一直在寻找解决方案,现在我放弃了。有人知道这是怎么回事吗?

我安装了这个编译器和交叉编译器:

g++/stable,now 4:6.3.0-4 amd64 [installed,automatic]
g++-6/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed,automatic]
g++-6-arm-linux-gnueabi/stable,now 6.3.0-18cross1 amd64 [installed,automatic]
g++-arm-linux-gnueabi/stable,now 4:6.3.0-4 amd64 [installed]
gcc/stable,now 4:6.3.0-4 amd64 [installed,automatic]
gcc-6/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed,automatic]
gcc-6-arm-linux-gnueabi/stable,now 6.3.0-18cross1 amd64 [installed,automatic]
gcc-6-arm-linux-gnueabi-base/stable,now 6.3.0-18cross1 amd64 [installed,automatic]
gcc-6-base/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed]
gcc-6-cross-base/stable,now 6.3.0-18cross1 all [installed,automatic]
gcc-arm-linux-gnueabi/stable,now 4:6.3.0-4 amd64 [installed]

这个可以忽略。这是其中一个 bjam 文件中的错误。您可以关注this link获取更多信息