我正在尝试为我的 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(非法指令)错误,我猜这是因为预我使用的内置交叉编译器没有针对正确的架构。
笔记:
我知道交叉编译非常困难,但我想更多地了解正在发生的事情