`

QT编译参数说明

    博客分类:
  • QT
阅读更多

注:本文的例子都基于qt-embedded-linux-opensource-src-4.5.x

当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助

如果参数前面有*号,直接配置编译的话,就会把这些参数默认进去。为了便于分析,接下来,我们以如下格式进行:

参数
解释

-release
编译Qt以发布版的模式进行,一般来说,最后系统完成后,库就应该是发布版。

-debug
与上面对应,自然是调试版了,如果开发的话,可以选择它吧。

-developer-build
选了这个后,可以进行自动测试。

-shared
-static
这两个参数是指Qt的lib以动态还是静态编译生成。

-no-fast
-fast
如果选第一个,则所有的工程文件都会生成到makefiles中,因而编译的时间就会很长。如果选第二个,那就只加入子目录和库到makefiles,这样就能加快编译的速度。

-no-largefile
-largefile
支不支持大文件,一般来说,嵌入式里是不会有从超过4G的大文件的。

-no-exceptions
-exceptions
选则编译器支持抛出异常,否则不支持。

no-sql-<driver>
-qt-sql-<driver>
-plugin-sql-<driver>
qt自带了大多数数据库驱动,可以完美地支持数据库的使用。对于数据库的使用,我们可以直接qt驱动编译进去,或者以插件的形式编译进去。一般来说,最简单地就是直接编译进去,但使用插件形式的可以更加灵活,针对不同的需求将驱动插件添加。其中,<>代表的是驱动名,如果我想直接添加sqlite的支持话,形式如下:-qt-sql-sqlite。其他名称可以自己查看参数里,有详细地介绍。

-system-sqlite
使用操作系统上的sqlite数据库,如果是不太会移植的,可以考虑直接使用qt自带的驱动。

no-xmlpatterns
-xmlpatterns
选择对xml的支持,如果对网络无需求的话,就不用加了。

-no-phonon
-phonon
phonon是qt中处理多媒体的模块

-no-phonon-backend
-phonon-backend
与上面类似,只不过这两者是以插件的形式加入支持。

-no-svg
-svg
svg即可缩放矢量图形。

-no-scripttools
-scripttools
是否加入脚本工具的支持,这对php等脚本工程师来说是个很棒的参数。

-platform target
目标平台,这可是关键了,如果不注意的话,编译出来是x86上的话,哪怕是再牛的嵌入式工程师来也没法帮你移植到开发板上。通常,本人是linux-arm-g++。

-no-mmx
-no-3dnow
-no-sse
-no-sse2
这四个参数是针对CPU的指令集。

-qtnamespace
把qt的库封装到命名空间。

-qtlibinfix
将所有的qt的.so库重命名。

如果是-no-XX-,就说明编译时不选择这个参数,如过是-qt-XX-,说明我们可以编译直接选用qt自带的驱动,如果是-plugin-XX-,就是将驱动以插件形式编译,而-system-XXX,当然是使用操作系统提供的驱动,不过那就需要您自己移植了,而且有时还要用第三方的API,就方便来说非常麻烦


-no-libtiff
-qt-libtiff
-system-libtiff
tiff是一种非常复杂的光栅图像格式,并且有直接现成的C语言实现库,因此选择参数时就有了qt和system。

-no-openssl
-openssl
-openssl-linked
SSL(Security Socket Layer)是一个安全传输协议,在Internet网上进行数据保护和身份确认,而OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,在qt中,我们可以选择直接支持,或者OpenSSL链接支持。

以上是第三方库的参数选择,紧接着就是qt附加参数,在附加参数里,我们可以指定编译的部分及加入参数来获取信息。

-make
-nomake
一句话说明就是可以通过这两个参数来选择哪些要编译,哪些不需要,通过适当的选择,可以大大加快编译的速度。

-R <string>
-l <string>
这两个参数是为编译时增加一个库的运行路径及头文件的路径,比如使用tslib作为开发触摸驱动时,我们就应使用这两个参数来指定tslib的库路径和头文件路径。

-no-rpath
-rpath
简单地说,就是告诉动态加载器,到-rpath指定的目录中寻找编译时须要的动态链接库,语法就与上面的参数结合,比如 -rpath -R/home/xxxx。

-continue
这个参数的作用就是当出现错误时依然进行配置编译,换我是不会加上的。

-verbose, -v
显示配置的每一步的具体信息。

-no-optimized-qmake
-optimized-qmake
是否编译生成优化过的qmake。

-no-nis
-nis
NIS(网络信息服务)是一个提供目录服务的RPC(远程过程调用)应用服务,当然没网络需要的可以再次华丽地无视。

-no-cups
-cups
CUPS给Unix/Linux用户提供了一种可靠有效的方法来管理打印。它支持IPP,并提供了LPD,SMB(服务消息块,如配置为微软WINDOWS的打印机)、JetDirect等接口。CUPS还可以浏览网络打印机。它的开发提供者是苹果公司。

-no-iconv
-iconv
iconv是一个计算机程序以及一套应用程序编程接口的名称。它的作用是在多种国际编码格式之间进行文本内码的转换,这对跨语言Qt开发人员来说是很有用的。

-no-pch
-pch
是否支持预编译过的头文件。预编译头就是把一个工程中的一部分代码,预先编译好放在一个文件里(通常以.pch为扩展名),这个文件就称为预编译头文件。这些预先编译好的代码在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。

no-dbus
-dbus
-dbus-linked
是否编译编译QtDBus模块。dbus是freedesktop下开源的Linux IPC通信机制,本身Linux 的IPC通信机制包括,管道(fifo),共享内存,信号量,消息队列,Socket等。在Qt中DBUS是有单独的模块的,可见其重要性。

-reduce-relocations
对于额外的库链接器优化,可以减少编译中的再定位。

no-separate-debug-info
-separate-debug-info
是否存储debug信息在.debug,一般为了查错,还是选择存储吧。

xplatform target
即交叉编译的目标平台,一般来说根据你所要移植的目标板来确定。

-no-feature-<feature>
-feature-<feature>
选取qte的feature编译,对于这个,我理解为特性,特性的描述你可以参考src/corelib/global/qfeatures.txt,在这里面对于每个特性都有比较充分的讲解。对于特性地选择,也是要根据开发需求进行,如果裁剪适当,能大大为qte库瘦身。

-embedded <arch>
嵌入式平台架构选择,可以选择arm,mips,x86及generic,视你的目标平台决定吧。

-armfpa
-no-armfpa
这个参数也只是针对ARM平台的,是否加入对于基于ARM的浮点数格式的支持,通常,这个参数在编译时会自动选择。

-little-endian
-big-endian
目标平台的大端和小端选择。

-host-little-endian
-host-big-endia
主机平台的大端和小端选择。

-no-freetype
-qt-freetype
-system-freetype
选择freetype,FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件。

-qconfig local
使用本地的qconfig配置文件来替代全部参数配置,可以裁剪控件级别的参数。

-depths <list>
显示的像素位深。

-qt-decoration-<style>
-plugin-decoration-<style>
-no-decoration-<style>
这个是选择qt的样式风格。

-qt-gfx-<driver>
-plugin-gfx-<driver>
-no-gfx-<driver>
这个是相当重要的一个参数,选择QtGui的图形显示驱动,比如我们在pc上使用qvfb模拟时,就应该加入对qfvb的支持。我们可以在linuxfb,transformed,qvfb,vnc,multiscreen这几个中选择。在平常的开发板上,选择linuxfb即可。

-qt-kbd-<driver>
-plugin-kbd-<driver>
-no-kbd-<driver>
选择键盘的驱动支持,可以支持usb键盘,串口键盘等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中选择。

qt-mouse-<driver>
-plugin-mouse-<driver>
-no-mouse-<driver>
鼠标的驱动支持,一般都会选择tslib,可以完美地支持触摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中选择吧。

-iwmmxt
加入iWMMXt指令的编译,也只是部分XScale架构才具有。

-no-glib
-glib
glib库对应即gtk库,就也是说加入后可以使用gtk。

 

分享到:
评论

相关推荐

    Qt5 configure参数说明文档

    Qt5 configure参数说明文档。Qt5源码VS下编译参考:http://blog.csdn.net/phil2036/article/details/20409535

    Win7 64bits + VS2012 静态编译 QT5.5.1

    Win7 64bits + VS2012 + Python3.5.2(64-bits)+ Qt 5.5.1 环境下静态编译 QT 包含图文说明和 编译参数的 含义

    基于Qt部署YOLOv5使用opencv-dnn-cuda加速推理(源码+说明文档).rar

    1、资源内容:基于yolov5+Qt使用openvinoopencv_dnn_cuda加速推理,可直接编译成可执行文件进行打包部署(完整源码+说明文档+数据).rar 2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其中有程序的.exe 可执行文件。但Qt Creator 默认是用动态链接的, 就是可执行程序在运行时需要相应的.dll 文件。我们点击生成的.exe 文件,首 先...

    QT的参考文档及其教程

    请注意,所有被Qt识别的命令行参数都会从argv中被移除(并且argc也因此而减少)。关于细节请看QApplication::argv()文档。 注意:在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。 QPushButton ...

    QT实现经典90坦克大战游戏,满分毕业设计,附说明文档,小白必看!

    按照上面的方式写好代码进行编译时发生了变量的重复定义报错(已经进行了宏定义防止头文件多次包含) 后来经过跟踪报错发现子弹类包含了一个map数组,而坦克类中也有map数组,两者分开是不会互相影响的,但把这两个...

    Qt设备状态检测系统源代码串口 网络TCP UDPModbus通信协议带有报警声音详细注释 设备状态检测源代码支持串口网口Tcp

    具备8路LED状态指示灯显示,状态异常声音报警提醒,用户填写的参数自动保存,延时检测等功能。 其中三个端口,采用了类的继承方式编写,对外统一接口,具备移植性,实现多态功能。 2.环境说明: 开发环境是Qt5.10.1...

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等。 带有折叠相同的帧YID...

    VC 常见编译错误.pdf

    USE_NATIVE_EH has an invalid value, change it to 1. error C2065: ‘_bstr_t’ : undeclared ...error C2664: “ATL::CStringT,StringTraits&gt;::Remove”: 不能将参数 1 从“const char [2]”转换为“char”

    毕设新项目-基于C++开发的校医院远程诊断系统源码+项目使用说明.zip

    下载5.13的源码,手动编译生成dll动态链接库文件,将该文件放入Qt5.13的数据库驱动文件夹中。 Mysql安装流程: 下载压缩包,zip文件 解压之后设置环境变量,将bin文件夹的路径放入 在安装目录中新建一个ini文件...

    UltraStar-Creator:UltraStar造物主

    2.发行说明 (:construction:正在施工:construction:) 3.命令行参数 (:construction:正在施工:construction:) 4.控制 (:construction:正在施工:construction:) 5.构建并运行 在Windows上编译 (:construction:...

    matlab终止以下代码-plasma-MDQT-simulation:结合分子动力学(MD)和量子轨迹(QT)的代码,以模拟超冷中性等离子体

    在运行模拟之前,用户必须适当设置输入参数,这些参数包含在MDQT代码的前100行中清楚标记的部分中,然后将其编译为可执行文件。 该代码使用openMP在多核计算机上运行,​​并且对于大型系统的仿真,需要大量的计算...

    基于STM32+华为云设计的火灾感知系统-源码工程.zip

    资料包里包含完整的STM32源码,设计文档,原理图,实物图,上位机APP,上位机源码(Qt工程完整源码),用到的软件工具,以及使用说明。拿到资料包之后可以轻松copy出一个一模一样的项目出来。你只需要按照设计文档买好...

    超大位数计算程序

    要使用清单3老版本的程序,可以按照5~8构建对应测试批处理或者直接在命令行指定参数,例如进行乘法可以使用命令 bc m。需要注意, 测试的时候C1.txt会被覆盖,需要先重命名上一次的文件。 3.关于最大计算位数当前...

    在C++程序中使用QML

    如果应用程序对结构化过于动态编译QObject类型;那么对动态结构化数据可在运行时使用QDeclarativePropertyMap 类构造。 从QML调用 C++ 通过public slots输出模式或Q_INVOKABLE标记模式使它可以调用QObject派生出的...

    Magic ARM 2410

    1.4.1 跳线器说明....................................47 1.4.2 连接器说明....................................50 1.5 硬件资源分配情况................................51 1.6 温馨提示.......................

    linux 原生迅雷

    当然,有能力的同学可以自行编译,在Ubuntu上编译安装说明如下 : 编译环境: 安装必备的软件。 sudo apt-get install git build-essential devscripts 下载源代码。 git clone git://github....

    SCON工具源码

    其中的 Program 是编译的类型,说明你准备想要建造一个可执行的二进制程序,它由 helloscons.c 文件来生成。在这里,没有指定生成的可执行程序的名字。不过不用担心,SCons 会把源代码文件名字的后缀去掉,用来作为...

    UltraStar-Manager:超级明星经理

    关于UltraStar-Manager(uman)是使用Qt的免费开源歌曲管理工具。 它应该可以在Windows,Linux和Mac OS上编译和运行。2.发行说明(:construction:正在施工:construction:)3.命令行参数命令行参数被传递给游戏,将其...

Global site tag (gtag.js) - Google Analytics