一 安装arm-linux-gcc交叉编译工具链
我用第一种方法去编译QT源码成功的,第二种方法好像不行。
方法一
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
查看arm-linux-gnueabihf-gcc的位置
whereis arm-linux-gnueabihf-gcc
which arm-linux-gnueabihf-gcc
方法二 去网站下载ubantu对应的交叉编译器
例如:arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2
1.解压
tar -xjvf arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2
2.创建目录并赋予权限存放解压的目录
sudo mkdir /usr/local/arm
sudo chmod 777 /usr/local/arm
3。复制文件到创建好的目录中
sudo cp -r gcc-4.6.4 /usr/local/arm
4.添加环境变量
sudo vi /etc/profile
export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib
5.重启该文件
source /etc/profile
6.检验安装成功
arm-linux-gcc -v
7.编译文件,查看文件是不是arm的可执行文件
arm-linux-gcc test_1.c -o test_1
如果编译不行的话,可以在下面文件添加一下,看看能否成功
sudo vi ~/.bashrc
export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib
二 编译QT官方源码
2.1 QT5.12.5官方源码下载
Index of /archive/qt/5.12/5.12.5/single
2.2 编译QT5.12.5官方源码
1.解压
tar -vxf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2
2.修改交叉编译架构用到的信息
vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
改为你对应的下载的arm平台下的交叉编译器
3.创建一个脚本文件,用于生成Makefile,在qt编译根目录执行命令
vim autoConfigure.sh
输入以下内容
#!/bin/bash
./configure -prefix /home/wu/qt5 \
-release \
-opensource \
-no-accessibility \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-zlib \
-qt-freetype \
-tslib \
-skip qtlocation \
-no-iconv \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-prefix /home/wu/qt5 :代表着是生成的库文件的目录
4.执行命令会生成Makefile文件
chmod 777 qt.configure.sh
./autoConfigure.sh
5.编译和安装
1. make -j8 // -j8为8线程编译,可根据服务配置调整参数
2. sudo make install // 将tslib安装到指定目录
6.切换目录,查看目录是否生成东西
cd /home/wu/qt5
ls
三. 设置QtCreator编译环境
首先参考这篇文章《【TOOLS】ubuntu如何安装QtCreator》安装QtCreator工具。
1.进入QtCreator开发环境,在菜单中选择Tools->Options,在弹出的对话框中,选择Kits,选择标签Compilers,按下图设置,选择手动添加C(GCC)和C++(G++)交叉编译器,如下图所示
2.切换到
Qt Versions
标签,点击“Add”按钮,选择qmake,如图所示:
3.切换到
Kits
标签,点击“Add”按钮,将上面设置的Compilers
和Qt Versions
添加到新的配置,然后设置如下图所示:
4.保存以上的配置后,创建一个新的工程进行测试,创建时选择新添加的Kits:
5.点击构建 验证是配置后的ARM交叉工具链编译,并且编译成功:
6.在Debug的目录下可以看见生成的test_9可执行文件
也可以通过另一种方法生成可执行文件,进入那个创建目录的文件夹
qmake
make
qmake生成Makefile文件,make生成test_9可执行文件(这个生成的不是arm的可执行文件)