开发环境:

虚拟机:VirtualBox + ubuntu16.04

开发板:Orangepi PC2


假设你已经搭建好Orangepi PC2的linux环境,并已经成功运行。


准备工作:

1、交叉编译工具:

采用OrangePi提供的交叉编译工具(*/OrangePiH5/toolchain/*),并已经配置好环境

2、下载Qt-5.7.0源代码(qt-everywhere-opensource-src-5.7.0.tar.gz):

http://download.qt.io/archive/qt/5.7/5.7.0/single/


开始移植:

1、修改qmake.conf文件,如下:

vim qt-everywhere-opensource-src-5.7.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
   
 include(../common/linux.conf)
 include(../common/gcc-base-unix.conf)
 include(../common/g++-unix.conf)
   
 QT_QPA_DEFAULT_PLATFORM = linuxfb
 QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a                                                                                                                                                              
 QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a
   
 # modifications to g++.conf
 QMAKE_CC                = aarch64-linux-gnu-gcc
 QMAKE_CXX               = aarch64-linux-gnu-g++
 QMAKE_LINK              = aarch64-linux-gnu-g++
 QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++
   
 # modifications to linux.conf
 QMAKE_AR                = aarch64-linux-gnu-ar cqs
 QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
 QMAKE_NM                = aarch64-linux-gnu-nm -P
 QMAKE_STRIP             = aarch64-linux-gnu-strip
 load(qt_config)

2、创建编译脚本:

cd qt-everywhere-opensource-src-5.7.0
touch qt_compile_config.sh
sudo chmod 777 qt_compile_config.sh
vim qt_compile_config.sh

输入以下内容:(具体 .configure 配置详解请参考链接:https://blog.csdn.net/xi_gua_gua/article/details/53413930

 #!/bin/sh  
 ./configure -prefix /opt/qt-5.7.0 \
 -opensource \
 -release \
 -no-pch \
 -confirm-license \
 -xplatform linux-arm-gnueabi-g++ \
 -shared \
 -qt-zlib \
 -no-iconv \
 -no-gif \
 -no-nis \
 -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 \                                                                                                                                                                                           
 -nomake tools \
 -qreal float \
 -qt-libpng \
 -no-compile-examples \
 -skip qtdeclarative \
   

执行编译脚本:

./qt_compile_config.sh

如果你够幸运它应该是成功的,上述指令会生成Makefile。

3、编译:

make

如果你足够幸运它应该也是成功的。

4、安装:

sudo make install

如果你特别幸运这里也是成功的。

然后你会看到 /opt/qt-5.7.0 文件夹产生,至此Qt环境搭建完成。


开始测试:

1、编译qt提供的samples:

cd /opt/qt-5.7.0/examples/widgets/mainwindows/mainwindow
/opt/qt-5.7.0/bin/qmake
make

经过上边的几步会编译生成:mainwindow 文件(可在OrangePi PC2上执行)

2、将 /opt/qt-5.7.0中的内容拷贝到 OrangePi PC2板子 /opt/目录(也可以拷贝到其它文件夹,只要你知道路径就好)

3、配置OrangePi PC2环境:

sudo vim /etc/profile

在最下边加入一下内容:

export QTDIR=/opt/qt-5.7.0 #上边让你记住的路径
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/ 
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

执行:

source /etc/profile

4、将第一步编译出来的 mainwindow 文件拷贝到 OrangePi PC2任意文件夹下,执行

./mainwindow -platform linuxfb

至此恭喜你界面上会显示内容如下:




参考文献:

https://blog.csdn.net/hechao3225/article/details/52981148

https://blog.csdn.net/kaychangeek/article/details/80258464

https://blog.csdn.net/xi_gua_gua/article/details/53413930

https://blog.csdn.net/sinat_20006769/article/details/79081154








./configure
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐