Qt5.7.0编译移植到Linux-Arm-A9
2016-11-12 13:26
651 查看
摘要: Qt5.7.0终于发布了,5.7.0增加了好多新功能,下面是编译5.7.0的过程,后面有时间再写一篇完整编译的(即5.7.0在arm板子上没有opengl的情况下如何使用quick)。
编译:
第一步:
下载qt-everywhere-opensource-src-5.7.0.tar.gz,这个Qt官方有。安装arm-linux-gnueabihf-gcc:
第二步:
找个英文目录,把qt-everywhere-opensource-src-5.7.0.tar.gz放进去。用终端解压:
最好别右击“提取到此处”,这个解压好像和命令解压不同,到编译的时候就坑了。
第三步:
修改编译配置文件,在目录:qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/linux-arm-gnueabi-g++/下面qmake.conf。(注意我的改动)改为:
第四步:
在编译之前,还有个改动,额。。。qt3d和qtcanvas3d在编译的时候会报错,说是未识别模块,而且嵌入式的没有opengl,识别了也会报错,导致编译失败,而且编译配置参数里面也没有这两个模块的配置。我的解决方法简单粗暴,在配置时参数加-no-opengl,然后
4000
打开qt-everywhere-opensource-src-5.7.0/qt.pro文件,找到:
这两行注释掉(#号注释),或者直接删掉。如果不注释掉,即使加了-no-opengl也会报错,编译失败。
第五步:
配置编译参数,用./configre -help 可以查看参数。我的配置是:
注意:红色部分是你的Qt库将要安装的位置,慎重,如果以后要装那,就写那。移动了位置,用的时候qmake找不到库。虽然可以配置,但是每个工程用的时候都得配路径,很麻烦。-no-opengl表示没有opengl。我没加参数-qreal float ,因为我发现,加上之后编不过。在编译到.../qtbase/src/gui/painting/qpdf.cpp的时候会报错。
第六步:
如果上面配置没有问题,接下来make:
或者
等20~120分钟。。。完成。
第七步:
安装:
在这里加sudo是因为,安装时会将库文件复制到上面第七步配置的安装目录(/opt/Qt-5.7.0/armv7-a ),opt目录是需要root权限的。
第八步:第九步:第十步:
编译平台插件,由于Qt5以后,删除了嵌入式的QWS(Qt windows system-Qt窗体系统)换成QPA(Qt Platform Abstration -Qt平台抽象),平台插件在qt-everywhere-opensource-src-5.7.0/qtbase/src/plugins/platforms/下面。有各种平台的插件,基于frambuffer的插件是lunuxfb这个文件夹下,其他的还有android、ios、winrt、windows等等,需要什么平台的编译就是了。QPA运行时要加参数。
好了,这是编译Qt5.7.0的过程。这个我把qt3d和qtcanvas3d砍掉了。
Linux环境下编译Qt5.7.0
我的系统是Ubuntu 16.04编译器是arm-linux-gnueabihf-gcc5.4,在ubuntu16.04中直接安装即可。编译:
第一步:
下载qt-everywhere-opensource-src-5.7.0.tar.gz,这个Qt官方有。安装arm-linux-gnueabihf-gcc:
$ sudo apt install gcc-arm-linux-gnueabi $ sudo apt install gcc-arm-linux-gnueabihf
第二步:
找个英文目录,把qt-everywhere-opensource-src-5.7.0.tar.gz放进去。用终端解压:
$: tar -zxvf qt-everywhere-opensource-src-5.7.0.tar.gz
最好别右击“提取到此处”,这个解压好像和命令解压不同,到编译的时候就坑了。
第三步:
修改编译配置文件,在目录: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) # 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 to linux.conf 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 load(qt_config)
第四步:
在编译之前,还有个改动,额。。。qt3d和qtcanvas3d在编译的时候会报错,说是未识别模块,而且嵌入式的没有opengl,识别了也会报错,导致编译失败,而且编译配置参数里面也没有这两个模块的配置。我的解决方法简单粗暴,在配置时参数加-no-opengl,然后
4000
打开qt-everywhere-opensource-src-5.7.0/qt.pro文件,找到:
addModule(qt3d, qtdeclarative qtimageformats) addModule(qtcanvas3d, qtdeclarative)
这两行注释掉(#号注释),或者直接删掉。如果不注释掉,即使加了-no-opengl也会报错,编译失败。
第五步:
配置编译参数,用./configre -help 可以查看参数。我的配置是:
$./configure -release -opensource -xplatform linux-arm-gnueabihr-g++ -prefix /opt/Qt-5.5.7/armv7-a -c++11 -no-opengl
注意:红色部分是你的Qt库将要安装的位置,慎重,如果以后要装那,就写那。移动了位置,用的时候qmake找不到库。虽然可以配置,但是每个工程用的时候都得配路径,很麻烦。-no-opengl表示没有opengl。我没加参数-qreal float ,因为我发现,加上之后编不过。在编译到.../qtbase/src/gui/painting/qpdf.cpp的时候会报错。
第六步:
如果上面配置没有问题,接下来make:
$make
或者
$make -j2 /*CPU 几个核可以使用“-j几”,核多编的快*/
等20~120分钟。。。完成。
第七步:
安装:
$sudo make install
在这里加sudo是因为,安装时会将库文件复制到上面第七步配置的安装目录(/opt/Qt-5.7.0/armv7-a ),opt目录是需要root权限的。
第八步:第九步:第十步:
编译平台插件,由于Qt5以后,删除了嵌入式的QWS(Qt windows system-Qt窗体系统)换成QPA(Qt Platform Abstration -Qt平台抽象),平台插件在qt-everywhere-opensource-src-5.7.0/qtbase/src/plugins/platforms/下面。有各种平台的插件,基于frambuffer的插件是lunuxfb这个文件夹下,其他的还有android、ios、winrt、windows等等,需要什么平台的编译就是了。QPA运行时要加参数。
好了,这是编译Qt5.7.0的过程。这个我把qt3d和qtcanvas3d砍掉了。
相关文章推荐
- Qt5.7.0编译移植到Linux-Arm-A9
- Qt5.5.0编译移植到Linux-Arm-A9
- Qt5.5.0编译移植到Linux-Arm-A9
- 汇总(之一):交叉编译工具链arm-none-linux-gnueabi-, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配置
- 移植编译bcm sdk6.4.8 过程-平台arm-linux cortex-a9双核,系xilinx soc
- 汇总(之四):交叉编译工具链arm-none-linux-gnueabi-, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配置
- QT环境搭建: QT玩转在linux的x86平台或者ARM平台上 - (2)交叉编译移植到ARM下
- 汇总(之二):交叉编译工具链arm-none-linux-gnueabi-, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配置
- 汇总(之三):交叉编译工具链arm-none-linux-gnueabi-, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配置
- arm_linux移植手记(一)——交叉工具链编译(上)
- arm-linux-gcc 4.1.1 编译 QT 4.7 for ARM 中的错误
- qt-everywhere-4.7.3-ARM交叉编译移植(三)
- Android系统移植1--创建ARM-Linux交叉编译环境
- 编译用于Linux-arm 的Qt4.8.0 opensource 出现 clock_gettime() 未找的错误解决办法
- 编译和移植qt-embedded-linux-opensource-src-4.5.3
- QT-everywhere-opensource-src-4.8.0 移植arm飞凌6410 过程记录(ubuntu11.10+arm-linux-gcc-4.3.2)
- Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结
- Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结
- QT4.8.0 opensource linux arm上的库编译
- Ubuntu下arm交叉编译环境的创建及基于s3c2410的linux2.6.22移植