在华为鲲鹏服务器中直接编译arm版qt库5.9.2并且编译程序的
⽅法
准备,安装编译器:
安装arm-linux-gnueabi-gcc:
$ sudo apt install gcc-arm-linux-gnueabi
$ sudo apt install g++-arm-linux-gnueabi
$ sudo apt install g++  //如果没有安装g++,还需要安装g++
$ sudo apt install python  //编译qtqml需要Python
gnu编译器arm32位:修改qmake编译配置参数 qtbase/mkspecs/linux-arm-gnueabi-g++/f
配置内容如下
# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX              = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++
# modifications f
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY          = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP            = arm-linux-gnueabihf-strip
arm64位:修改qmake编译配置参数 qtbase/mkspecs/linux-aarch64-gnu-g++/f
# 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 f
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
注意:
这⾥指定了编译arm版qt所使⽤的编译器,与后期QtCreator项⽬的编译器是⼀样的。
如果你是⽤的是arm-none-linux-gnueabi-gcc,那么每⼀项都需要修改为arm-none-linux-gnueabi-*。
#这⾥提前解释⼀下,第三步中已经指定好了编译器版本,所以第四步不需要指定了。
#第四步中的-xplatform linux-arm-gnueabi-g++是对应f所在的⽂件夹,代表了编译的Qt库的版本。
第四步:
配置编译参数,⽤./configre -help 可以查看参数。
我的配置是(去除掉了⼀些⽤不到的选项,使⽤-nomake进⾏了指定,不需要examples等等):
此处,需要注意,32位和64位的区别
32位arm:
../configure -release -extprefix /opt/arm-qt -xplatform linux-arm-gnueabi-g++ -no-opengl -no-openssl -nomake tests -no-compile-examples -nomake examples -gif -ico -qt-libpng -qt-libjpeg -qt-sqlite
64位aarch64:
../configure -recheck-all -release -extprefix /opt/aarch64-qt -xplatform linux-aarch64-gnu-g++ -no-opengl -no-openssl -nomake tests -no-compile-examples -nomake examples -gif -ico -qt-libpng -qt-libjpeg -qt-sqlite
本⽂使⽤的是:
./configure -recheck-all -release -opensource -confirm-license -xplatform linux-aarch64-gnu-g++ -prefix /usr/local/qt5.9.2 -nomake examples -no-opengl -no-openssl -no-iconv -silent -qpa linuxfb -no-gtk -qt-libjpeg -qt-libpng -no-dbus
注意:
1、-xplatform linux-aarch64-gnu-g++ ,指定了编译Arm版的QT库;
2、-prefix后⾯的配置为qt库需要安装的位置,这个需要根据你的安装位置⾃⼰指定。
3、如果更换了./confugure配置内容,尤其是重新指定了-xplatform,需要将QT的源代码删除,重新执⾏命令。
第五步:
如果上⾯配置没有问题,接下来make:
$make
或者
$make -j64                /*CPU ⼏个核可以使⽤“-j⼏”,核多编的快*/
第六步:
安装:$sudo make install
在这⾥加sudo是因为,安装时会将库⽂件复制到上⾯第四步配置的安装⽬录( /usr/local/qt5.9.2)。
usr⽬录是需要root权限的。
好了,这是编译Qt5.9.2的过程。
编译平台插件:
由于Qt5以后,删除了嵌⼊式的QWS(Qt windows system-Qt窗体系统)换成QPA(Qt Platform Abstr
ation -Qt平台抽象),平台插件在qt-everywhere-opensource-src-5.9.2/qtbase/src/plugins/platforms/下⾯。有各种平台的插件,基于frambuffer的插件是lunuxfb这个⽂件夹下,其他的还有android、ios、winrt、windows等等,需要什么平台的编译就是了。
编译软件
1、修改/etc/profile⽂件,设置qmake的环境变量
export PATH=$PATH: /usr/local/qt5.9.2/bin

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。