Qt交叉编译移植arm开发板
文章目录
- Qt交叉编译移植arm开发板
- 1 环境介绍
- 2 opecv的移植
- 3 交叉编译链的安装
- 4 tslib库的安装
- 5 Qt源码的交叉编译
- 6 qt配置编译器
- 6 编译arm-qt程序
1 环境介绍
linux -------------------------------- Ubuntu16.04 ----------------------- 下载地址
交叉编译------------------------ arm-linux-gcc-4.4.3 ------------------ 下载地址
Qt版本 --------------------------------- Qt5.13.0 -------------------------- 下载地址
Qt源码 ---------------------------------- Qt5.6.0 --------------------------- 下载地址
tslib版本 -------------------------------- tslib1.9 --------------------------- 下载地址
2 opecv的移植
opecv的移植
3 交叉编译链的安装
1.首先上传到虚拟机进行解压
sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C /
2.添加环境变量
sudo vi /etc/profile
在打开的文件中添加:export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH
注:/opt/FriendlyARM/toolschain/4.4.3/bin为交叉编译链所在路径
3.是环境变量添加到路径
source /etc/profile
4 tslib库的安装
1.对源码包进行解压
tar zxvf tslib-1.9.tar.gz
2.创建tslib库的安装路径
sudo mkdir -p /usr/local/tslib
3.进入解压库中配置执行以下命令(三步命令)
cd tslib
./autogen.sh
./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc CXX=/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++ -prefix=/usr/local/tslib
4.编译
make -j4
5.安装
make install
5 Qt源码的交叉编译
1.对Qt源码包进行解压
tar zxvf qt-everywhere-opensource-src-5.6.0.tar
-
创建安装路径
sudo mkdir -p /usr/local/Qt
3.配置qt-everywhere-opensource-src-5.6.0/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf文件
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_INCDIR=/usr/local/tslib/include/
QMAKE_LIBDIR=/usr/local/tslib/lib/
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc -lts
QMAKE_CXX = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++ -lts
# modifications to linux.conf
QMAKE_AR = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-objcopy
QMAKE_NM = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-strip
# opengl
QMAKE_INCDIR_OPENGL_ES2 = /usr/local/opengl_lib_inc/include/khronos
QMAKE_LIBDIR_OPENGL_ES2 = /usr/local/opengl_lib_inc/libs
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES1 += -lGLESv1_CM -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES1CL += -lGLES_CL -lEGL -lGAL
QMAKE_INCDIR_EGL = /usr/local/opengl_lib_inc/include/khronos
QMAKE_LIBDIR_EGL = /usr/local/opengl_lib_inc/libs
QMAKE_LIBS_EGL += -lEGL
QMAKE_LIBS_OPENVG += -lOpenVG -lEGL -lGAL
load(qt_config)
4.在qt-everywhere-opensource-src-5.6.0/下创建qt-build.sh配置编译选项, 参数含义
./configure -prefix /usr/local/Qt \
-opensource \
-release \
-confirm-license \
-xplatform linux-arm-gnueabi-g++ \
-shared \
-verbose \
-qt-zlib \
-pkg-config \
-no-nis \
-opengl \
-no-gif \
-qt-libjpeg \
-no-opengl \
-no-cups \
-no-glib \
-no-dbus \
-no-rpath \
-no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 \
-no-avx \
-no-openssl \
-skip qtdeclarative \
-skip qtserialbus \
-skip qtwebchannel \
-skip qtlocation \
-nomake tools \
-qreal float \
-qt-libpng \
-tslib \
-make examples \
-I /usr/local/tslib/include \
-L /usr/local/tslib/lib \
-L /usr/local/opengl_lib_inc/libs \
-I /usr/local/opengl_lib_inc/include/khronos \
5.执行qt-build.sh
sudo chmod +x qu-build.sh
sudo ./qt-build.sh
6.编译、安装
sudo make -j4
sudo make install
6 qt配置编译器
安装完成之后,对应的目录下已经生成相应的文件,QT在linux的安装将不再赘述,可以自行查找,主要讲一下编译完之后的配置。
1.首先添加编译器(g++的编译器也要添加,相同方法)
2.添加qmake
3.添加kits
6 编译arm-qt程序
1.创建项目时,选择刚才加入的编译器
2.编译结果
3.移植到开发板
可以通过文件系统或者直接拷贝进去。
=========================(后续更新)-------------------------------------