我已经有了一个交叉编译工具链,并成功地在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
,这意味着"从头构建所有内容"