编译用于在 Windows 系统下开发 ARM Linux 的 Qt 库
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
<!--more-->
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 等必要环境,可参考 (/thread-31-1-1.html)
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
在 `工具>选项>构建和运行` 中作如下配置:
!(https://file.mculoop.com/images/2022/11/4216426488_1668570276.png)
!(https://file.mculoop.com/images/2022/11/3604193289_1668570280.png)
!(https://file.mculoop.com/images/2022/11/1135379976_1668570284.png)
-------
后记:
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,结果成功了。
页:
[1]