本文参考了 https://blog.csdn.net/console_log/article/details/122855717?spm=1001.2014.3001.5506
1. 下载qt-everywhere-src-5.12.11.tar.gz源码,并解压
2. cd 到刚才解压的目录qt-everywhere-src-5.12.11
3. cd 到 `qtbase/mkspecs`,我们看到这个目录下有好多类型的编译环境
4. `cp -r linux-arm-gnueabi-g++ linux-arm-gnueabihf-g++`
这句话的目的就是复制一份linux-arm-gnueabi-g++为linux-arm-gnueabihf-g++
5. 修改`linux-arm-gnueabihf-g++/qmake.conf`内容如下:
主要就是修改编译器,这里面选择控制器对应的编译器
QMAKE_CC = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_AR = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP = /opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip
6. 返回到源码目录,并`mkdir build`,且 cd 到 build
7. 新建sh文件 `vi build_cfg.sh`,并将下列内容复制进去
prefix表示编译生成库安装到这里
xplatform 表示选择的编译器目录,这个就是刚才配置的目录
../configure -prefix /home/xxx/qt/qt5.12.11-bin -opensource -confirm-license -release -xplatform linux-arm-gnueabihf-g++ -make libs -nomake examples -nomake tools -nomake tests -no-opengl
8. 配置临时的g++编译环境,方便直接操作
export PATH="export PATH=/opt/gcc-linaro-4.9.4-arm-linux-gnueabihf/bin/:$PATH"
9. 将build_cfg.sh设置权限为可执行文件 `chmod 777 build_cfg.sh`
10. 执行 `./build_cfg.sh`
11. 成功执行完后,会生成一个 Makefile文件
12. 开始编译 `make -j 12`
13. 编译成功后执行 `make install`
14. 最后会在 `/home/xxx/qt/qt5.12.11-bin` 目录看到刚才生成的Qt库和Qt的开发编译工具
### 工程代码的编译
1. 设置一下Qt编译工具的临时环境变量,这样方便使用qmake工具
`export PATH="/home/xxx/qt/qt5.12.11-bin/bin/:$PATH"`
2. cd到你自己的工程目录,比如Test,并执行 `qmake -project`
3. 执行 `qmake Test.pro`
4. 执行 `make`