1、在 https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ 下载 Windows 版 ARM 交叉编译工具链。
Sourcery CodeBench Lite Edition
Sourcery CodeBench Lite Edition is a free, unsupported version of Sourcery CodeBench, available for select processors.
Sourcery CodeBench is a complete development environment for embedded C/C++ development. Sourcery CodeBench Lite Edition includes:
- GNU C and C++ compilers
- GNU assembler and linker
- C and C++ runtime libraries
- GNU debugger
我使用的是 arm-2014.05-29-arm-none-linux-gnueabi
2、加入到系统环境变量 Path 中,测试:arm-none-linux-gnueabi-gcc -v
3、下载 Qt 源码 http://download.qt.io/archive/qt/5.6/5.6.1/single/qt-everywhere-opensource-src-5.6.1.7z
4、安装、配置 python、perl 等必要环境,可参考 Qt 5.6 静态编译
5、配置
将 /qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 中的:
QMAKE_CC = arm-linux-gnueabi-gcc
QMAKE_CXX = arm-linux-gnueabi-g++
QMAKE_LINK = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
修改为:
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
进入源码根目录,执行配置命令:
configure -opensource -confirm-license -release -xplatform linux-arm-gnueabi-g++ -prefix "C:\Qt\kits\linux-arm-5.6.1" -qt-sql-sqlite -no-openssl -no-opengl -no-openvg -nomake tools -nomake examples -nomake tests
需要注意,交叉编译使用了 -xplatform
而不是 -platform
。
6、编译
执行命令:mingw32-make
7、安装
将编译好的工具包安装在配置中定义的位置:-prefix "C:\Qt\kits\linux-arm-5.6.1"
执行命令:mingw32-make install
8、配置 Qt Creator
在 工具>选项>构建和运行
中作如下配置:
后记:
1、使用 Linaro GCC 工具链
在使用 Sourcery CodeBench Lite 之前我使用 gcc-linaro-5.3-2016.02-i686-mingw32_arm-linux-gnueabi 编译 qt-everywhere-opensource-src-5.6.1 一直出现错误,无奈只能暂时放弃。
看到 qt-everywhere-opensource-src-5.6.2 发布了,于是今天打算再编译一下试试看,不过这次使用的是更新的 gcc-linaro-6.1.1-2016.08-i686-mingw32_arm-linux-gnueabi,结果成功了。