阡陌 发表于 2023-12-19 17:32:26

编译用于在 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]
查看完整版本: 编译用于在 Windows 系统下开发 ARM Linux 的 Qt 库