系列文章目录
前言
该篇讲解一下,使用海思交叉编译器arm-hisiv500-linux-gcc,编译qt5.6源码,搭建qt交叉编译环境
一、修改qmake.conf
打开文件~/Project/qt-everywhere-opensource-src-5.6.1/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,修改内容如下:
PS:后面注释部分(#arm-linux-gnueabi-gcc)要删除掉,不然编译会报错,我是为了方便阅读才这样排版
# modifications to g++.conf
QMAKE_CC = arm-hisiv500-linux-gcc #arm-linux-gnueabi-gcc
QMAKE_CXX = arm-hisiv500-linux-g++ #arm-linux-gnueabi-g++
QMAKE_LINK = arm-hisiv500-linux-g++ #arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-hisiv500-linux-g++ #arm-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-hisiv500-linux-ar cqs #arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-hisiv500-linux-objcopy #arm-linux-gnueabi-objcopy
QMAKE_NM = arm-hisiv500-linux-nm -P #arm-linux-gnueabi-nm -P
QMAKE_STRIP = arm-hisiv500-linux-strip #arm-linux-gnueabi-strip
load(qt_config)
二、配置qt5.6编译环境
解压下载好的qt源码安装包,需要下*.tar.xz,因为windows的源码和linux的行尾不一样,编译会报错,cd进入解压后的目录,输入命令如下:
./configure -prefix /opt/qt5_6_1_hisiv500 -release -opensource -qt-libpng -qt-libjpeg -plugin-sql-sqlite -widgets -no-iconv -no-dbus -no-openssl -no-iconv -no-accessibility -no-sse2 -silent -nomake tools -nomake examples -nomake tests -qt-freetype -no-glib -strip -linuxfb -no-opengl -xplatform linux-arm-gnueabi-g++
三 、编译Qt
然后直接编译,等待编译完成即可
make -j4
sudo make install
编译报错记录:
sh: python:未找到命令
Project ERROR: Building QtQml requires Python.
应该是没找到python,按如下方法处理即可
lzy@ubuntu:~/Project/qt-everywhere-opensource-src-5.6.1$ which python
lzy@ubuntu:~/Project/qt-everywhere-opensource-src-5.6.1$ which python3
/usr/bin/python3
lzy@ubuntu:~/Project/qt-everywhere-opensource-src-5.6.1$ ll /usr/bin/python3
lrwxrwxrwx 1 root root 9 8月 17 19:21 /usr/bin/python3 -> python3.8*
lzy@ubuntu:~/Project/qt-everywhere-opensource-src-5.6.1$ sudo ln -s /usr/bin/python3.8 /usr/bin/python
四 、配置Qt交叉编译环境
打开qt,点击工具->选项->Kits,分别执行如下配置:
1. 编译器配置
2. Qt Versions配置
3. Kits配置
总结
新建一个Qt GUI工程,构建套件选择如下
点击左下角那把🔨,如果没报错说明交叉编译环境搭建好了,下一章讲讲解如何移植到海思Hi3521D板子上,以及Qt运行环境配置