qt 编译的时候为什么配置不了eglfs是什么

后使用快捷导航没有帐号?
第4篇 交叉编译Qt 5.4.0
导版权声明该文章原创于Qter开源社区(),作者hzzhou,转载请注明出处!
前面我们测试了天嵌自带的Qt平台,从这一篇开始,我们将正式着手Qt的移植工作,就是首先编译出ARM版本的Qt库,然后用这个Qt库来编译可以在开发板上运行的Qt程序,最后将这个Qt程序放到开发板上运行。而进行Qt移植的第一步就是进行Qt库的交叉编译,所谓交叉编译,就是编译出的库文件是ARM版本的,它不支持PC平台,而使用这个库编译出的Qt程序只可以在ARM开发板上运行。
一、编译前准备工作 1、所需开发环境操作系统:ubuntu14.04 32位;已设置好的Qt 5.4.0开发环境(详见)
2、需要下载的文件 A) Qt源代码文件: qt-everywhere-opensource-src-5.4.0.tar.gz, 下载地址为: 下载后使用如下命令进行解压: tar&&xvzf&&qt-everywhere-opensource-src-5.4.0.tar.gz
B) Opengl ES库: gpu-viv-bin-mx6q-3.10.17-1.0.0.tar.gz 下载地址为: 或到Qter开源社区。 下载后使用如下命令进行解压: tar&&xvzf&&gpu-viv-bin-mx6q-3.10.17-1.0.0.tar.gz 解压完成后进入gpu-viv-bin-mx6q-3.10.17-1.0.0目录,该目录中有以下内容:
其中hardfp中的内容是我们需要的。把hardfp目录下的usr目录拷贝到/opt/tqexlib/目录下,此目录是自己定义的,读者可以拷贝到其它目录下,只需要在后边修改Qt的编译配置文件的时候设置正确就可以了。
C)编译器:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2&&到Qter开源社区。 下载完成后使用如下命令解压: tar&&xvjf&&gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2 -G
该命令会把编译器文件解压到: /opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain&&目录。 这时在/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin目录应该可以看到arm-fsl-linux-gnueabi-g++等工具。
把上述这些文件准备好以后,就可以开始Qt的交叉编译工作了。在这里先预祝各位读者一切顺利。
二、编译过程 1、设置环境变量 使用如下命令设置环境变量: exportPATH=$PATH:/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin 这样设置的目的是为了让shell可以找到移植过程中需要使用的交叉编译器。在shell中输入: arm-fsl-linux-gnueabi- 然后按两次TAB键,如果出现如下内容就说明环境变量设置正确了。
2、修改Qt编译文件 & && &&&天嵌的E9开发板使用的是freescal的imx6系列的处理器,Qt已经对该系统处理器进行了单独的支持,所以只需要修改对应的编译支持文件就可以了。先cd到Qt源码目录,然后使用如下命令查看该文件: cat qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf
& && & 使用vi(或其他文本编辑器)打开这个文件并修改其内容如下图所示:(可以到Qter开源社区修改好的文件)
& && & 在这个文件中指定了openGL ES库的路径及头文件路径和需要引用的库。这里的目录使用的是/opt/tqexlib,如果读者自己定义了OpenGL ES库的路径,只需要进行相应的修改即可。 3、配置Qt & && & 在命令行使用cd命令进入Qt 5.4的源码目录,可以看到一个名为configure的脚本文件,使用这个文件可以对Qt源码进行配置,来指定源码中哪些部分需要编译进库中,哪些部分不需要编译到库中。正确执行这个脚本后会生成Makefile文件。这里使用的配置命令如下: ./configure&&-v&&-prefix /usr/local/qte-arm&&-opensource -confirm-license&&-qt-sql-sqlite -qt-libpng -qt-libjpeg&&-qt-freetype -qt-pcre -no-compile-examples-device imx6 -no-xcb -no-directfb& &&&-linuxfb& &-no-kms&&-eglfs& && &-qpa eglfs -opengl es2 -device-optionCROSS_COMPILE=/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-& & & & 下边逐项对这里使用的参数进行解释: &&参数&&功能-prefix /usr/local/qte-arm指定Qt库和头文件等安装到/usr/local/qte-arm目录下,这个目录不是必须的,可以自己指定。-opensource -confirm-license使用opensource代码,并同意许可协议。开源版和商业版相对应的-qt-sql-sqlite使用qt的sqlite数据库-qt-libpng使用qt的png库-qt-libjpeg使用qt的jpeg库-qt-freetype使用qt的freetype库, freetype是一种字体格式-qt-pcre使用qt的pcre库-no-compile-examples不编译Qt提供的例程,这样可以加快编译速度,如果需要的时候可以单独编译。-device imx6指定使用的设备是imx6系统处理器-no-xcb不编译xcb支持-no-directfb不编译directfb支持-linuxfb编译linuxfb支持-no-kms不编译kms支持-eglfs编译eglfs支持-qpa eglfs指定qpa默认使用eglfs。-opengl es2使用opengl es2-device-option CROSS_COMPILE=/opt/Embedsky&&/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12&&/tq-linaro-toolchain/bin/arm-fsl-linux-gnueabi-指定编译器的路径和前缀 执行完成configure命令后,就生成了Makefile文件,此时就可以进行编译了。 4、编译和安装 & && & 生成了Makefile,一切都准备好了,现在就让电脑去工作吧。输入:
make -j5 & && & 然后你就可以休息了。这里的-j5参数是让编译过程分为5个线程进行,可以提高编译速度。分为几个线程可以遵循“CPU 核心数 + 1”的原则。例如:我的电脑是i5处理器,双核四线程,所以我这里分成5个线程进行。整个编译过程在我的电脑上需要大概40分钟。忙了这么长时间去喝杯咖啡犒劳一下自己吧。编译完成后,执行: sudo makeinstall 好了,祝贺你,到这里Qt库已经交叉编译完成了。
结 语 & && &
& && &这一篇中我们做了Qt移植中最重要的一步工作,就是编译Qt,这样生成的库可以用来编译Qt程序,从而生成可以在开发板上运行的可执行文件。下一篇将在Qt Creator中关联生成的Qt ARM库,从而编译出可以在开发板上运行的可执行文件。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
相当好的教程,很详细~ 谢谢
很详细 学习了 谢谢楼主
恰好公司有e9的板子,可以试试,练手了。。
楼主,如果是tiny6410的板子,我该怎么改qmake.conf
我用的时TI的AM335x,BBB板,该如何修改呀,尝试了几次configure失败
必须收藏& && && && && && && && && && &&&
如果要移植到am335x的板子上,qtbase/mkspecs/devices/l里应该改哪个文件
按教程编译了好几次了,运行程序的时候都出现
This application failed to start because it could not find or load the Qt platform plugin &eglfs&.
Reinstalling the application may fix this problem.
什么原因???
5.4 移植时候 tslib不需要了吗? 我按照做法总是不成功&&./configure 就会有很多关于mouse的错误出来 make也不能通过
主题帖子积分树莓派上Qt5交叉编译移植新手指南 | 戴维营教育博客---长沙 苹果IPhone ObjC开发培训 嵌入式Linux C/C++培训 Qt4开发培训
› 树莓派上Qt5交叉编译移植新手指南
Raspberry Pi (BCM2835): Device Information
Architecture
256MB OR 512MB since October 2012 (shared with GPU)
VideoCore IV
OpenGL ES 2.0
Multimedia
OpenMax IL 1.1.2
Qt 5.0 (eglfs/QPA)
Supported, with OpenGL ES 2.0
Qt 5 port functional state (against Raspbian Wheezy (primary reference platform))
Additional info
Hardware accelerated cursor
Wayland support
Hardware decoding of images
Scenegraph tailoring
HardFP support
Requires v8 patch
Qt Multimedia
Requires gst-omx
Webkit integration
webgl, tex mapper
首先我们先创建一个目录来存放Qt5的源代码以及交叉编译所需要的所有文件,我选择在当前用户家目录下创建一个叫做“opt”的目录。
diveinedu@debian:~$ mkdir
diveinedu@debian:~$ cd
然后,下载以下文件:
下载Raspbian Wheezy 镜像
(下载 [raspberrypi.org]):
diveinedu@debian:~/opt$ wget
http://downloads.raspberrypi.org/images/raspbian/-wheezy-raspbian/-wheezy-raspbian.zip
diveinedu@debian:~/opt$unzip
-wheezy-raspbian.zip
下载解压完后挂载镜像:
diveinedu@debian:~/opt$ sudo
/mnt/rasp-pi-rootfs
diveinedu@debian:~/opt$ sudo mount
-o loop,offset=3-03-09-wheezy-raspbian.img
/mnt/rasp-pi-rootfs
我们这不介绍交叉工具链的编译,直接下载针对树莓派优化定制的交叉编译工具链(或者用github上树莓派的工具链):
diveinedu@debian:~/opt$
http://blueocean.qmh-project.org/gcc-4.7-linaro-rpi-gnueabihf.tbz
diveinedu@debian:~/opt$
tar -xf gcc-4.7-linaro-rpi-gnueabihf.tbz
因为上面的交叉编译工具是32位Linux的,如果你所使用的是64位Linux的话,还需要安装32位的运行库软件包:
diveinedu@debian:~/opt$
sudo apt-get install ia32-libs
如果用的是Debian Wheezy的64位系统,上面的行不通,因为Debian Wheezy 64位开启了multiarch-support ,需要执行:
diveinedu@debian:~/opt$
sudo apt-get install multiarch-support
diveinedu@debian:~/opt$
sudo dpkg --add-architecture i386
diveinedu@debian:~/opt$
sudo apt-get update
diveinedu@debian:~/opt$
sudo apt-get install ia32-libs
从远程仓库克隆一份cross-compile-tools到本地:
diveinedu@debian:~/opt$
git clone git://gitorious.org/cross-compile-tools/cross-compile-tools.git
从远程仓库克隆一份Qt5的源码库到本地:
diveinedu@debian:~/opt$
git clone git://gitorious.org/qt/qt5.git
diveinedu@debian:~/opt$
diveinedu@debian:~/opt/qt5$
./init-repository
最后,把qtjsbackend子项目打补丁让其支持armv6指令集的树莓派:
diveinedu@debian:~/opt/qt5$
cd ~/opt/qt5/qtjsbackend
diveinedu@debian:~/opt/qt5$
git fetch https://codereview.qt-project.org/p/qt/qtjsbackend
refs/changes/56/27256/4
cherry-pick
FETCH_HEAD
如果有冲突的话就解决冲突的代码。
编译qtbase
现在我们已经准备好了为树莓派交叉编译Qt5所需要的全部资源,在正式编译之前只需要执行一个小脚本来修正一下符号链接和库文件路径设置:
diveinedu@debian:~/opt/qt5$
~/opt/cross-compile-tools
diveinedu@debian:~/opt/qt5$
./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc
进入qt5/qtbase目录执行以下脚本进行配置和编译工作:
diveinedu@debian:~/opt/qt5$ cd ~/opt/qt5/qtbase
diveinedu@debian:~/opt/qt5/qtbase$ ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-relocations -reduce-exports -release -make libs -prefix /usr/local/qt5pi -no-pch
diveinedu@debian:~/opt/qt5/qtbase$ make -j 4
diveinedu@debian:~/opt/qt5/qtbase$ sudo make install
编译其他模块
执行到这步的时候,你已经有了针对树莓派交叉编译的qmake工具了,你可以一一的去交叉编译Qt5的其他模块了,为里避免模块编译过程中可能出现的依赖错误,建议按照这个模块顺序去编译: qtimageformats, qtsvg, qtjsbackend, qtscript, qtxmlpatterns, qtdeclarative, qtsensors, qt3d, qtgraphicaleffects,qtjsondb,qtlocation, qtdocgallery.
模块编译相关的类似命令:
diveinedu@debian:~/opt/qt5$ cd qtimageformats
diveinedu@debian:~/opt/qt5/qtimageformats$ /usr/local/qt5pi/bin/qmake .
diveinedu@debian:~/opt/qt5/qtimageformats$ make -j4
diveinedu@debian:~/opt/qt5/qtimageformats$ sudo make install
把你所需要或者所想编译的模块都按顺序执行编译安装命令后,所有需要的东西都安装在了镜像文件(raspbain wheezy image)里面了。我们接下来就是把他烧到SD卡上去。 SD卡烧写命令:
diveinedu@debian:~/opt/qt5$ cd ~/opt/
diveinedu@debian:~/opt$ sudo umount /mnt/rasp-pi-rootfs
diveinedu@debian:~/opt$ sudo dd bs=1M if=-wheezy-raspbian.img of=/dev/ sync
提示:/dev/sdc是我使用的SD的设备, 请根据自己的实际情况修改。
到这里,树莓派的Qt5运行库的编译移植过程就Done了。
后续会有例程Demo以及Qt5的QPA机制在树莓派上的eglfs平台插件的特点介绍和传统QtWidget程序在EGLFS环境下遇到的问题和解决分析。
C/C++开发,嵌入式Linux,嵌入式开发, Qt开发, Qt5移植 等, 尽在长沙戴维营教育 ,欢迎前来学习。
标签: , , , ,linux下编译qt5.6.0——configure配置
时间: 14:08:32
&&&& 阅读:1898
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&linux下编译qt5.6.0
首先下载源码包qt-everywhere-opensource-src-5.6.0.7z
7z x -o/home/o/qt-src/qt-opensource-src-5.6.0 qt-everywhere-opensource-src-5.6.0.7z
cd /home/o/qt-src/qt-opensource-src-5.6.0
我这里解压到/home/o/qt-src/qt-opensource-src-5.6.0中,解压后进入这个目录。
configure生成makefile
先使用./configure --help来看看都有哪些参数,这里就不贴命令输出结果了,直接把选项都翻译出来
-prefix &dir&
指定部署目录(默认 /usr/local/Qt-5.6.0)
-extprefix &dir&
安装目录(默认 SYSROOT/PREFIX)
-hostprefix [dir]
运行在这个主机上的构建工具的安装目录,如果不给定,使用当前目录. (默认 EXTPREFIX)
你可以用这些来改变安装的布局。请注意,所有目录除sysconfdir外,其他的应位于-prefix/ hostprefix下
-bindir &dir&
用户可执行文件将安装到这个目录(默认 PREFIX/bin)
-headerdir &dir&
头文件安装目录(默认 PREFIX/include)
-libdir &dir&
库文件安装目录(默认 PREFIX/lib)
-archdatadir &dir&
QT相关的数据将被安装到&&目录&(默认 PREFIX)
-plugindir &dir&
插件安装目录(默认 ARCHDATADIR/plugins)
-libexecdir &dir&
程序的可执行文件安装目录(默认 ARCHDATADIR/libexec, ARCHDATADIR/bin for MinGW)
-importdir &dir&
导入QML1安装目录(默认 ARCHDATADIR/imports)
-qmldir &dir&
导入QML2安装目录(默认 ARCHDATADIR/qml)
-datadir &dir&
QT独立的数据安装目录(default PREFIX)
-docdir &dir&
文档安装目录(default DATADIR/doc)
-translationdir &dir&
Qt程序的翻译数据安装目录(default DATADIR/translations)
-sysconfdir &dir&
设置使用QT程序的搜寻目录(default PREFIX/etc/xdg)
-examplesdir &dir&
示例文件安装目录(default PREFIX/examples)
-testsdir &dir&
测试文件安装目录(default PREFIX/tests)
-hostbindir &dir&
主机可执行文件安装目录(default HOSTPREFIX/bin)
-hostlibdir &dir&
主机库文件安装目录(default HOSTPREFIX/lib)
-hostdatadir &dir&
qmake使用数据安装目录(default HOSTPREFIX)
Configure选项
下表中第一列中的*表示默认并可行的。+表示默认,但需要进行评估(检测),评估通过才可接受。
编译和链接Qt的release版本
编译和链接debug版本
-debug-and-release
编译和链接release和debug两个版本(仅MAC)
-force-debug-info
为release构建创建符号链接
-developer-build
Qt开发者编译和链接选项(包括自动测试/输出)
-no-optimized-tools
即使在调试版本中,也不构建优化的主机工具
-optimized-tools
构建优化的主机工具,即使在调试版本
-opensource
编译和链接Qt开源版本
-commercial
编译和链接的Qt商业版
-confirm-license
自动确认许可证(使用开源或是商业)
-c++std &edition&
编译QT使用的C++标准 (c++98, c++11, c++14, c++1z) 默认: 最高支持版本
创建并使用Qt共享库.
创建并使用QT静态库
-no-largefile
禁用大文件支持
-largefile
启用QT访问大于4 GB的文件功能
-no-accessibility
不编译的可访问性支持禁用访问不推荐,它将破坏QStyle并且可能影响QT构建
这个选项启用将创建一个源不兼容版本的QT,这是不支持
-accessibility
编译访问支持.
-no-sql-&driver&
完全禁用SQL &driver& .
-qt-sql-&driver&
在 Qt SQL 模块启用SQL &driver&,默认是不启用的.
-plugin-sql-&driver&
启用SQL &driver\&作为一个插件在运行时链接
&driver&的可能值为:
[ db2 ibase mysql oci odbc psql sqlite sqlite2 tds ]
-system-sqlite
利用操作系统SQLite
-no-qml-debug
不构建在QML调试支持
-qml-debug
构建QML调试支持
-platform target
构建的目标操作系统和编译器(默认检测主机系统) 读readme文件获取支持的操作系统和编译器列表
编译不要使用SSE2指令
编译不要使用SSE3指令
编译不要使用SSSE3指令
-no-sse4.1
编译不要使用SSE4.1指令
-no-sse4.2
编译不要使用SSE4.2指令
编译不要使用AVX指令
编译不要使用AVX2指令
-no-mips_dsp
编译不要使用MIPS DSP指令
-no-mips_dspr2
编译不要使用MIPS DSP Rev2指令
-qtnamespace &name&
把所有的Qt库代码放入namespace &name& {...}中
-qtlibinfix &infix&
重命名索引libQt*.so为libQt*&infix&.so
-testcocoon
Instrument Qt with the TestCocoon code coverage tool.
Instrument Qt with the GCov code coverage tool.
-D &string&
显示的添加一个宏定义到预处理器
-I &string&
显示的添加一个包含路径
-L &string&
显示添加一个库路径
-pkg-config
使用pkg-config检测包括库路径。默认情况下,配置决定是否使用pkg-config或不具有启发式如检查环境变量。
-no-pkg-config
禁用pkg-config支持
-force-pkg-config
强制使用pkg-config (跳过pkg-config可用性启发式检测).
显示帮助信息.
使用QT自带zlib库
-system-zlib
使用操作系统自带的zlib库。
不要编译mtdev支持
mtdev包含了应用程序对多点触摸协议的支持
启用mtdev的支持.
-no-journald
不要把日志输出到journald.
Journald是为Linux服务器打造的新系统日志方式
日志输出到journald
-no-syslog
不要输出日志到syslog.
输出日志到syslog.
不要编译GIF读取支持
-no-libpng
不要编译PNG支持
-qt-libpng
使用Qt自带的libpng
-system-libpng
使用操作系统自带的libpng
-no-libjpeg
不要编译JPEG支持.
-qt-libjpeg
使用QT自带的libjpeg.
-system-libjpeg
使用系统自带的 libjpeg
-no-freetype
不要编译Freetype2的支持.
-qt-freetype
使用QT自带的libfreetype.
-system-freetype
使用系统自带的libfreetype(假如存在) (启用,如果-fontconfig选项开启).
-no-harfbuzz
不要编译HarfBuzz-NG 支持.
-qt-harfbuzz
使用QT自带的HarfBuzz-NG 去进行文本构形. 仍然可以通过设置QT_HARFBUZZ 环境变量到&old&来禁用.
-system-harfbuzz
使用系统自带的HarfBuzz-NG区进行文本构形.仍然可以通过设置QT_HARFBUZZ 环境变量到&old&来禁用
-no-openssl
不要编译OpenSSL的支持
启用运行时OpenSSL支持.
-openssl-linked
启用并链接OpenSSL支持
-no-libproxy
不要编译libproxy的支持
使用操作系统自带的libproxy.
使用QT自带的PCRE library.
-system-pcre
使用操作系统自带的PCRE library
使用QT自带的xcb-libraries. (libxcb.so将仍然使用操作系统自带的).
-system-xcb
使用操作吸引自带的xcb- libraries .
-xkb-config-root
设置默认的XKB config root. 这个选项仅与-qt-xkbcommon-x11一起使用.
-qt-xkbcommon-x11
在构建xcb中使用QT自带的xkbcommon library .
-system-xkbcommon-x11
在构建xcb中使用操作系统自带的 xkbcommon library.
-no-xkbcommon-evdev
当编译libinput支持时,不使用X-less xkbcommon.
-xkbcommon-evdev
当编译libinput支持时,使用X-less xkbcommon.
-no-xinput2
不要编译XInput2的支持.
编译XInput2支持.
-no-xcb-xlib
不要编译Xcb-Xlib支持.
编译 Xcb-Xlib支持.
不要编译 Glib 支持.
编译 Glib 支持.
-no-pulseaudio
不要编译PulseAudio 支持.
-pulseaudio
编译 PulseAudio 支持.
不要编译 ALSA 支持.
编译 ALSA 支持.
-no-gtkstyle
不要编译GTK theme 支持.
编译 GTK theme 支持.
-make &part&
在make时添加要构建的组件. (默认为:libs tools examples
-nomake &part&
在构建时排除组件
-skip &module&
排除整个模块的建立
-no-compile-examples
仅安装examples的源码,不要编译它.
不要构建Qt GUI模块和依赖.
构建Qt GUI 模块和依赖.
-no-widgets
不要构建Qt Widgets 模块和依赖.
构建 Qt Widgets模块和依赖
-R &string&
显示添加一个运行时库的路径去构建Qt libraries.
-l &string&
显示添加一个library.
不使用库安装路径作为一个运行时库路径
在苹果的平台上,这意味着使用绝对安装名称(基于在libdir)动态库和框架。
链接 Qt 库和可执行文件使用库安装路径作为运行时库路径。相当于-R install_libpath
如果发生错误,尽量继续。
-verbose, -v
打印每个步骤的配置过程的详细的信息。
减少生成输出,这样可以更容易看到警告和错误。
不要编译NIS 支持.
编译 NIS 支持.
不要编译CUPS支持.
编译CUPS支持. 要求 cups/cups.h 和libcups.so.2.
不编译对 iconv(3) 的支持。
编译对 iconv(3) 的支持。
不编译对 evdev 的支持。
编译对 evdev 的支持。
不编译对 tslib 的支持
tslib是对触屏的支持
编译对 tslib 的支持.
不编译对 ICU libraries 的支持.
这是IBM发布的字符集编码转换库
编译对 ICU libraries 的支持.
-no-fontconfig
不编译系统中的FontConfig支持
-fontconfig
编译系统中的FontConfig支持
不对二进制文件和库的使用strip去除不需要的符号.
在安装时对二进制文件和库的使用strip去除不需要的符号
不使用预编译的头支持.
使用预编译的头支持.
不使用链接时代码生成
使用链接时代码生成.
不要编译Qt D-Bus 模块.
-dbus-linked
编译Qt D-Bus模块并链接到libdbus-1.
-dbus-runtime
编译Qt D-Bus模块并动态加载libdbus-1.
-reduce-relocations
减少通过额外的链接器优化库的重加载
(仅qt/X11 和Qt/linux嵌入式 ;实验性的;需要 GNU ld & = 2.18)
-no-use-gold-linker
不要使用GNU gold linker进行链接.
-use-gold-linker
使用GNU gold linker进行链接.
-force-asserts
强制启用Q_ASSERT,即使在release构建中.
-sanitize [address/thread/memory/undefined]
启用指定编译器的sanitizer.
-device &name&
跨平台编译&name&设备 (试验性)
-device-option &key=value&
添加device mkspec的device选项 (试验性)
-no-separate-debug-info
不将调试信息存储在一个单独的文件
-separate-debug-info
将调试信息到一个单独的文件
不要编译Xcb (X protocol C-language Binding) 支持.
编译 Xcb 支持.
不要编译EGLFS (EGL Full Screen/Single Surface) 支持.
编译 EGLFS 支持.
不要编译KMS的后端.
编译 KMS的后端.
不要编译 GBM 的后端.
编译 GBM的后端.
-no-directfb
不要编译 DirectFB 支持.
编译 DirectFB 支持.
-no-linuxfb
不要编译Linux Framebuffer 支持.
编译 Linux Framebuffer 支持.
-no-mirclient
不要编译 Mir client 支持.
-mirclient
编译 Mir client 支持.
-qpa &name&
设置默认的QPA 平台 (示例 xcb, cocoa, windows).
-xplatform target
指定目标平台(在跨平台编译时)
-sysroot &dir&
将&dir&设置为目标编译器和 qmake 的 sysroot 并且也设置 pkg-confing路径.
-no-gcc-sysroot
当使用-sysroot时, 它禁用将&sysroot传递到编译器
-no-feature-&feature&
在&feature&中的不编译.
-feature-&feature&
编译&feature&中的.
可用的功能介绍在src/corelib/global/qfeatures.txt
-qconfig local
使用src/corelib/global/qconfig-local.h ,而不是默认的(全部).
-qreal [double/float]
为qreal指定类型.默认值是double。请注意,更改此标志影响二进制兼容性。
-no-opengl
禁用OpenGL支持.
-opengl &api&
启用 OpenGL 支持. 不带参数时,这将会尝试自动检测的 OpenGL ES 2.0 和更高版本,或常规的桌面版OpenGL.
使用 es2 的&api&将替代自动检测
-no-libinput
禁用libinput支持.
启用libinput 支持.
-no-gstreamer
禁用GStreamer支持.
-gstreamer &version&
启用 GStreamer 支持。不带参数,这将会尝试自动检测 GStreamer 0.10 和 1.0。GStreamer 1.0 是默认使用的可用时。使用 0.10 或 1.0 &version&来覆盖自动检测。
-no-system-proxies
默认情况下,不使用系统网络代理
-system-proxies
默认情况下,使用系统网络代理
-no-warnings-are-errors
Make 时把warnings当做正常
-warnings-are-errors
Make时把warnings 当做错误 (如果启用了-developer-build)
QNX/Blackberry 选项:
不编译 slog2 的支持
编译 slog2 的支持
不编译 pps 的支持
编译 pps 的支持
不编译 imf 的支持
编译 imf 的支持
不编译 lgmon 的支持
编译 lgmon 的支持
Android 选项:
-android-sdk path
Android SDK 根目录
(默认 $ANDROID_SDK_ROOT)
-android-ndk path
Android NDK 根目录.
(默认 $ANDROID_NDK_ROOT)
-android-ndk-platform
设置android 平台版本
(默认 android-9)
-android-ndk-host
设置android NDK 主机类型 (linux-x86, linux-x86_64, etc.)
(默认 $ANDROID_NDK_HOST)
-android-arch
设置android 体系结构 (armeabi, armeabi-v7a, x86, mips, arm64-v8a, x86_64, mips64)
(默认 armeabi-v7a)
-android-toolchain-version
设置android 工具链版本
(默认 4.9)
-no-android-style-assets
不编译 通过运行时设备自动提取style-assets的代码.
设置这将使Android风格的行为不当,但与lgpl2.1许可兼容
-android-style-assets
编译 通过运行时设备自动提取style-assets的代码. 此选项将使Android平台的lgpl2.1许可不兼容。
生成makefile
下面是我编译的时候使用的选项。
-platform这一个选项是用于指定目标平台的,可以看qt源码目录/qtbase/mkspecs/下的的目录,就是QT支持的平台。可以进这个目录修改qmake.conf文件来指定编译器和编译选项。
/home/o/qt-src/qt-opensource-src-5.6.0/qt-everywhere-opensource-src-5.6.0 [o@o-pc] [12:09]
& ./configure -prefix /home/o/pragram/qt_5.6.0_gcc5.2.1 -release -debug -opensource -c++std c++11 -static -qt-sql-mysql -qt-sql-sqlite -platform linux-g++-64
-qt-zlib -no-journald -qt-libpng -qt-libjpeg -openssl -opengl
下面是询问是否查看开源协议或者直接接受的。直接yes通过就好。
Type ‘3‘ to view the GNU Lesser General Public License version 3.
Type ‘L‘ to view the Lesser GNU General Public License version 2.1.
Type ‘yes‘ to accept this license offer.
Type ‘no‘ to decline this license offer.
Do you accept the terms of either license? yes
遇到链接检查失败的情况
这里给出一个示例,就是xcb库检查失败。
Running configuration tests (phase 1)...
Done running configuration tests.
Creating qmake...
Running configuration tests (phase 2)...
The test for linking against libxcb and support libraries failed!
You might need to install dependency packages, or pass -qt-xcb.
See src/plugins/platforms/xcb/README.
这个很好解决,按下libxcb-***-dev就是了。其他的库检查失败也是一样的。也可以通过-qt-xcb选项,使用Qt自带的xcb库。
生成makefile后进行编译
configure成功后会出现如下提示,后面说让你使用make进行编译,make install进行安装。
1 Build type:
linux-g++-64 (x86_64, CPU features: mmx sse sse2)
3 Build options:
Configuration .......... accessibility accessibility-atspi-bridge alsa audio-backend avx avx2 c++11 clock-gettime clock-monotonic compile_examples concurrent dbus dbus-linked debug egl eglfs egl_x11 enable_new_dtags evdev eventfd fontconfig full-config getaddrinfo getifaddrs gif glib gstreamer-0.10 harfbuzz iconv icu inotify ipv6ifname jpeg kms large-config largefile libudev linuxfb medium-config minimal-config mremap nis opengl openssl png posix_fallocate precompile_header pulseaudio qpa qpa reduce_exports reduce_relocations rpath small-config sse2 sse3 sse4_1 sse4_2 ssse3 static system-freetype threadsafe-cloexec use_gold_linker xcb xcb-glx xcb-plugin xcb-render xcb-sm xcb-xlib xinput2 xkbcommon-evdev xkbcommon-qt xlib xrender zlib
Build parts ............ libs tools examples
Mode ................... debug
Using sanitizer(s)...... none
Using C++ standard ..... c++11
Using gold linker....... yes
Using new DTAGS ........ yes
Using PCH .............. yes
Using LTCG ............. no
Target compiler supports:
SSE2/SSE3/SSSE3 ...... yes/yes/yes
SSE4.1/SSE4.2 ........ yes/yes
AVX/AVX2 ............. yes/yes
18 Qt modules and options:
Qt D-Bus ............... yes (linked to dbus-1)
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... no
27 Support enabled for:
Accessibility .......... yes
ALSA ................... yes
CUPS ................... no
Evdev .................. yes
FontConfig ............. yes
FreeType ............... yes (system library)
Glib ................... yes
GStreamer .............. yes (0.10)
GTK theme .............. no
HarfBuzz ............... yes (bundled copy)
Iconv .................. yes
ICU .................... yes
Image formats:
GIF .................. yes (in QtGui, using bundled copy)
JPEG ................. yes (in QtGui, using bundled copy)
PNG .................. yes (in QtGui, using bundled copy)
libinput................ no
Logging backends:
journald ............... no
............... no
mtdev .................. no
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
libproxy.............. no
OpenSSL .............. yes (loading libraries at run-time)
NIS .................... yes
OpenGL / OpenVG:
EGL .................. yes
OpenGL ............... desktop
OpenVG ............... no
PCRE ................... system
pkg-config ............. yes
PulseAudio ............. yes
QPA backends:
DirectFB ............. no
EGLFS ................ yes
EGLFS i.MX6 ........ no
EGLFS i.MX6 Wayland. no
EGLFS EGLDevice .... no
EGLFS GBM .......... no
EGLFS Mali ......... no
EGLFS Raspberry Pi . no
EGLFS X11 .......... yes
LinuxFB .............. yes
Mir client............ no
XCB .................. yes (system library)
EGL on X ........... yes
GLX ................ yes
MIT-SHM ............ yes
Xcb-Xlib ........... yes
Xcursor ............ yes (loaded at runtime)
Xfixes ............. yes (loaded at runtime)
Xi ................. no
Xi2 ................ yes
Xinerama ........... yes (loaded at runtime)
Xrandr ............. yes (loaded at runtime)
Xrender ............ yes
XKB ................ yes
XShape ............. yes
XSync .............. yes
XVideo ............. yes
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ qt
OCI .................. no
ODBC ................. yes (plugin)
PostgreSQL ........... yes (plugin)
SQLite 2 ............. no
SQLite ............... qt-qt
TDS .................. no
tslib .................. no
udev ................... yes
xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
xkbcommon-evdev......... yes
zlib ................... yes (bundled copy)
109 WARNING: Using static linking will disable the use of dynamically
110 loaded plugins. Make sure to import all needed static plugins,
111 or compile needed modules into the library.
112 Info: creating super cache file /home/o/qt-src/qt-opensource-src-5.6.0/qt-everywhere-opensource-src-5.6.0/.qmake.super
114 Qt is now configured for building. Just run ‘make‘.
115 Once everything is built, you must run ‘make install‘.
116 Qt will be installed into /home/o/pragram/qt_5.6.0_gcc5.2.1
118 Prior to reconfiguration, make sure you remove any leftovers from
119 the previous build.
configure成功提示
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/oloroso/p/5407779.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 qt5 eglfs 的文章

 

随机推荐