交叉编译提升的麻烦

时间:2010-02-23 09:49:28

标签: boost cross-compiling

我正在尝试在我们的系统中设置Boost 1.42。我需要Boost使用gcc编译常规x86架构,我需要交叉编译德州仪器的ARM处理器。

ARM处理器的工具链基于gcc。像gcc,ar,ranlib这样的工具都以arm_v5t_le-为前缀。关于交叉编译的documentation有些限制。这是我做的: 我已将以下内容添加到user-config.jam文件中:using gcc : arm : arm_v5t_le-g++ ;从我们的Makefile调用Bjam,如下所示:bjam toolset=gcc-arm --toolset-root=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin <some other options>为ARM处理器编译,如下所示:bjam toolset=gcc <some other options> for x86处理器。选项--toolset-root被提到here

我遇到了以下问题: 当我为ARM处理器构建应用程序时,我得到以下链接器错误:libboost_system-mt.a:无法读取符号:存档没有索引;运行ranlib添加一个。我在存档上运行arm_v5t_le-ranlib后,链接没有问题。我的猜测是bjam使用ar而不是arm-v5t_le-ar。如何告诉bjam它应该使用哪个归档器?

mailing list上,据说也在user-config.jam中指定了<archiver>,但遗憾的是它似乎不起作用。我最终得到了相同的链接器错误。

感谢。

1 个答案:

答案 0 :(得分:3)

尝试基于CMake的Boost构建,可能比BJam更好地进行跨平台构建。至少我已经取得了成功(但我从未尝试过ARM)。

相关问题