2

我正在尝试为我的 Raspberry Pi 交叉编译 Qt 5.0.1(目前的最新版本)。我的设置如下:

操作系统:Ubuntu 12.04 32 位

交叉编译器:由 crosstool-NG 程序构建,使用此处找到的确切说明

Raspberry Pi 操作系统:Raspbian Wheezy 2013-02-09(安装在 /mnt/raspberry-pi-rootfs)

配置命令:

./configure -no-pch -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=/home/<myusername>/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi- -sysroot /mnt/raspberry-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5-raspberry-pi -v

当我运行配置命令时,它总是失败并出现以下错误:

Could not determine the target architecture!

/mnt/raspberry-pi-rootfs/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

有谁知道这是什么意思?

我已经从这里尝试了最新的预构建 Linaro Toolchain 交叉编译器,并且至少构建了 Qt,但是任何用它编译的程序都会在程序运行时导致 SIGILL(非法指令)错误,我猜这是因为预我使用的内置交叉编译器没有针对正确的架构。

笔记:

我知道交叉编译非常困难,但我想更多地了解正在发生的事情

4

1 回答 1

1

我不确定这条消息的确切原因是什么,但我设法从这里使用 Raspberry Pi 的预构建工具链进行了整理:

https://github.com/raspberrypi/tools

于 2013-03-05T14:37:51.230 回答