我有一个交叉编译工具链,我在Ubuntu 10.10上成功编译了一个相当大的应用程序。
现在我正在尝试引入boost 1.46.1。我已经完成了boost cross编译方向所说的内容。即运行bootstrap.sh,修改user-config.jam以添加行:
using gcc : arm : /path/to/compiler/arm-none-linux-gnueabi-g++ ;
当我发出:
./bjam --toolchain=gcc-arm
bjam编译提升,但是当我这样做时:
file ..../something.o
输出表示Intel 80386 ELF文件,而不是arm文件。我已经使用其他应用程序arm对象进行了检查,文件命令报告arm 80386。
我已经尝试设置我的PATH
将交叉编译二进制文件放在首位并将LD_LIBRARY_PATH
设置为arm编译器库,但我所做的一切似乎都无法阻止bjam编译为英特尔
答案 0 :(得分:5)
功能不以--
开头,toolchain
不是有效功能;这样做:
bjam toolset=gcc-arm
答案 1 :(得分:1)
调试bjam问题的一种非常方便的方法是包含-n
参数。它将打印所有命令行,而不是执行它们。然后你会看到实际调用了哪个g ++。
如果您已构建了所有内容,则可能还需要包含-a
,这意味着“从头开始重建所有内容”