编译环境:Ubuntu 20 . 04 (下载地址:https://ubuntu.com/download/desktop)
QT源码(QT5.9.5 下载地址:https://download.qt.io/archive/qt/5.9/5.9.5/)
交叉编译器(arm-2014.05 下载地址:https://download.csdn.net/download/qq_42898725/19428034?spm=1001.2014.3001.5503)
1.解压qt源码
2.配置交叉编译器的路径
$ vim /etc/profile
#文件最后一行加入
export PATH=/opt/arm-2014.05/bin:$PATH
使生效
source profile
判断是否生效:
arm-none-linux-gnueabi-gcc -v #能显示出交叉编译器的版本号则成功
(QT5有相应的配置文件,只需要修改qmake.conf)
vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf #在源码路径下
下面是修改好的qmake.conf, 其中的内容需要根据自己的实际情况去修改。
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
#define the architecture of arm /定义arm的架构
QT_QPA_PLATFORM = linuxfb:fb=/dev/fb0
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
#end
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-objcopy
QMAKE_NM = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-strip
load(qt_config)
这里修改了两个地方,一是定义了arm的架构,其中:QT_QPA_PLATFORM是指定QPA平台的插件,这里选择的是linuxfb,
参数-O是编译器提供的优化选项,如-O、-O1、-O2、-O3等,代表不同的优化级别,
参数-march后面指定的是目标处理器的架构(可能指定不同的架构会调用不同的指令集,猜的~)
另外一个改动的地方就是将下面g++.conf和linux.conf中的参数值中加上了完整的路径,如arm-none-linux-gnueabi-gcc,这是我选择的交叉编译器,可以根据自身的情况修改。
配置Qt可以通过源码包中configure脚本来完成,运行configure脚本后会得到makefile文件,然后通过make和make install命令完成编译和安装。这里编写了一个脚本来实现配置的步骤。
vim icedustpan.sh #创建编译脚本
脚本说明:
-prefix /opt/newQt5.9.5_arm/newQt5.9.5_arm_install \ 是安装路径 详细说明(https://www.bilibili.com/video/BV1tp4y1i7EJ?p=17)的p17有介绍
./configure \
-v\
-prefix /opt/newQt5.9.5_arm/newQt5.9.5_arm_install \
-release \
-make libs\
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-separate-debug-info \
-nomake examples -nomake tools
给与权限:
chmod +x icedustpan.sh
执行配置QT脚本
./icedustpan.sh
make -j4
sudo make install
将自己编译安装的QT的lib和plugins 拷贝到开发版中
配置arm的环境变量
vi etc/profile
export LD_LIBRARY_PATH=/usr/local/qt5.9.6/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/qt5.9.6/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_QPA_FONTDIR=/usr/local/qt5.9.6/lib/fonts
下载路径:https://download.qt.io/archive/qt/
编译器路径填写:
/opt/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
然后点击Apply:
C++也是一样
点击Add->GCC->C++:
编译器路径 填写:
/opt/arm-2014.05/bin/arm-none-linux-gnueabi-g++
然后点击Apply:
点击Qt Versions ,然后点击Add:
选择如下图路径的qmake,然后点击Apply:
点击Debuggers,然后点击Add:
Name填写:qt5.9.5-imx6
Path 填写:
/home/ubuntu1404/work/arm-2014.05/bin/arm-none-linux-gnueabi-gdb
然后点击Apply
Name填写:qt5.9.5-imx6
Sysroot填写:/home/ubuntu1404/work/arm-2014.05/bin
Compiler C 选择GCC
Compiler C++ 选择GCC
Debuggers 选择qt5.9.5-imx6
Qt version 选择Qt 5.9.5(qt5)
最后点击OK。
使用root用户在终端运行:<安装目录>/bin/qtcreator.sh
直接点图标运行可能无法编译,提示一些库找不到