试图在Ubuntu 10.10上交叉编译Boost 1.46.1到Arm Linux



我已经有了一个交叉编译工具链,并成功地在Ubuntu 10.10上编译了一个相当大的应用程序。

现在我要介绍boost 1.46.1。我已经做了什么boost交叉编译指示说。即运行bootstrap.sh,修改user-config。添加一行:

using gcc : arm : /path/to/compiler/arm-none-linux-gnueabi-g++ ;

当我发出:

 ./bjam --toolchain=gcc-arm

bjam编译boost,但是当我执行a:

 file ..../something.o

显示的是Intel 80386 ELF文件,不是arm文件。我已经检查了其他应用程序arm对象,文件命令报告arm不是80386。

我已经尝试设置我的PATH将交叉编译二进制文件放在第一位,并将LD_LIBRARY_PATH设置为arm编译器库,但我所做的一切似乎都无法阻止bjam为Intel编译。

特征不以--开头,且toolchain不是有效特征;使:

bjam toolset=gcc-arm

用bjam调试问题的一个非常方便的方法是包含-n参数。它将打印所有的命令行,而不是执行它们。然后您将看到实际调用的是哪个g++。

如果您已经构建了所有内容,您可能还想包含-a,这意味着"从头构建所有内容"