zoukankan      html  css  js  c++  java
  • qt configure参数配置介绍

    ==================================
    ====全文是按照./configure -help来翻译的========
    ==================================
    Usage:  configure [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
            [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
            [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
            [-demosdir <dir>] [-buildkey <key>]
            这些是基本参数
            [-release] [-debug][-debug-and-release] [-developer-build]
            [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
            [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
            [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
            [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
            [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
            这些是对QT所支持模块等设置的参数
            [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
            [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
            [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
            [-no-make <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
            [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
            [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
            [-no-separate-debug-info]
            这些是第三方库的支持参数
            [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
            [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] 
            [-armfpa][-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns]
            [-xmlpatterns][-no-phonon] [-phonon] [-no-phonon-backend] 
            [-phonon-backend][-no-openssl] [-openssl] [-openssl-linked]
            [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
            [-no-scripttools] [-scripttools]

    安装选项:

    以下选项都是可选,通过他们指定安装目录,不指定则用默认目录。选项前标记*的则为系统默认,+则为添加才有效那种
        -prefix <dir> ......... 指定安装目录默认在 /usr/local/Trolltech/QtEmbedded-4.X.X
        -hostprefix [dir] ..... 指定可扩展的工具库安装路径,默认当前目录
      * -prefix-install ........ 指定QT的本地安装. 至
                                     /usr/local/Trolltech/QtEmbedded-4.X.X, 此选项优先于-PREFIX.

    以下选项用来指定分开安装不同部分,比如希望将可执行的放在/usr/bin 将库文件放在/lib下等等:

        -bindir <dir> ......... 指定可执行文件路径 <dir>(默认 PREFIX/bin下)
        -libdir <dir> .......... 指定库文件路径 <dir>(默认 PREFIX/lib)
        -docdir <dir> ........ 指定文档路径 <dir>(默认 PREFIX/doc)
        -headerdir <dir> .... 指定头文件路径 <dir>(默认 PREFIX/include)
        -plugindir <dir> ...... 指定插件路径 <dir> (默认 PREFIX/plugins)
        -datadir <dir> ........ 指定QT要使用到的一些数据文件所在路径 <dir> (默认 PREFIX)
        -translationdir <dir> . 指定QT程序的翻译文件路径 <dir>(默认 PREFIX/translations)
        -sysconfdir <dir> ..... 指定QT的设置文件路径 <dir>(默认 PREFIX/etc/settings)
        -examplesdir <dir> .... 指定实例文件, <dir>(默认 PREFIX/examples)
        -demosdir <dir> ....... 指定demos的安装路径 <dir> (默认 PREFIX/demos)

    可以用这些选项去匹配自己所想要的插件

        - buildkey <key> ...... 通过指定的key生成QT库和插件。
    配置选项:

    默认的选项(*),可选添加选项(+)

    当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,那我们只要选取参数部分看看

    -release

    这个参数显而易见,就是编译Qt以发布版的模式进行,一般来说,最后系统完成后,库就应该是发布版。

    -release

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

    -debug-and-release

    囧,上面那两个的儿子。

    -developer-build

    囧,我错了,开发者也可以用这个的,选了这个后,可以进行自动测试,不过还没去用过,以后可以研究研究。

    -opensource

    -commercial

    这两个参数是指是编译是商业版本的,还是开源版本呢,视个人情况而定。

    -shared

    -static

    这两个参数是指Qt的lib以动态还是静态编译生成,这自然也是视个人需要的。

    -no-fast

    -fast

    这两个就很有关系,如果对自己的电脑性能很有信心,那就选第一个,那所有的工程文件都会生成到makefiles中,那编译的时间,估计可以看完变形金刚了。如果选第二个,那就加入子目录和库到makefiles,这样就能加快编译的速度。

    -no-largefile

    -largefile

    顾名思义,支不支持大文件,一般来说,嵌入式里是不会有从超过4G的大文件的,那就选第一个吧。

    -no-exceptions

    -exceptions

    计算机英语够好的人都该懂,这个自然就是异常情况,选则编译器支持抛出异常,否则不支持。

    -no-accessibility

    -accessibility

    可访问性的支持,说实话,这个我真不知道有什么有用了。等哪天发现了,再来好好解释。

    -no-stl

    -stl

    是都加入stl的支持,stl,这应该算是C++程序员应该都了解了,再不济,那也总听说过大名吧。

    no-sql-<driver>
    -qt-sql-<driver>
    -plugin-sql-<driver>

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

    -system-sqlite

    sqlite真受欢迎啊,当然那么优秀的嵌入式数据库,本人也是基本使用它来进行开发。这个参数意思是使用操作系统上的sqlite数据库,如果是不太会移植的,可以考虑直接使用qt自带的驱动。

    -no-qt3support

    -qt3support

    这个也是简洁易懂,加不加对qt3的支持。

    no-xmlpatterns

    -xmlpatterns

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

    -no-phonon

    -phonon

    phonon是qt中处理多媒体的模块,比如放放视频什么来着,不过本人从没用过,也是根据需要选择的。

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

    -no-svg

    -svg

    是否加入svg的支持,svg即可缩放矢量图形。

    -no-webkit

    -webkit

    是否加入webkit的支持,这可是个好东西,不过如果跟网络不搭界的话,还是不支持吧。

    -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-sql-<driver>

    -qt-sql-<driver>
    -plugin-sql-<driver>
    -system-sqlite

    这是相当明显的,如果这都看不出来,,囧,那您一定比我近视(本人800度近视。。)

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

    接下来,我们接着研究配置参数。

    -qt-zlib

    -system-zlib

    想 必经过上面的讲解,参数的意思已经很快得知,就是选择qt带的zlib库还是系统的zlib。zlib库是用于文件和资料压缩的库,对于新入嵌入式的人来 说,可能并无太大的用处,但是在以后的实际开发中,特别是对于多媒体图像图形的工程师来说,就肯定用到,因为图形图像的压缩都要使用或涉及到这个库。

    -no-gif
    -qt-gif

    这是选择gif的支持,如果选择qt支持的话,那在用qt开发的项目中,就能显示gif图,gif也是比较普遍的图片格式了,英文全称是Graphics Interchange Format。

    -no-libtiff
    -qt-libtiff
    -system-libtiff

    tiff是一种非常复杂的光栅图像格式,并且有直接现成的C语言实现库,因此选择参数时就有了qt和system,一般来说,科学相关的开发里可能会用到。

    -no-libpng
    -qt-libpng
    -system-libpng

    png的相关参数,一种非失真性压缩位图图形文件格式,其实就是为了替代gif搞出来的,也是随实际需要来选择,当然,也有C语言实现的库。

    -no-libmng
    -qt-libmng
    -system-libmng
    大汗,大汗,这可是超级罕见的东西,QT竟然也能支持,说实话,这个参数我看来就是无视的。MNG是多帧PNG动画格式,结构极其复杂,基本没人用。

    -no-libjpeg
    -qt-libjpeg
    -system-libjpeg

    jpeg,这么有名的图片格式也不用说了,随需要选择吧。

    -no-openssl
    -openssl
    -openssl-linked

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

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

    -make
    -nomake

    一 句话,说明,就说我可以这两个参数选择哪些我要编译,哪些我不需要,在 libs tools examples demos docs translations这些里你可以选择,比如examples,并不重要,可以放在-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支持,NIS(网络信息服务)是一个提供目录服务的RPC(远程过程调用)应用服务,当然没网络需要的可以再次华丽地无视。

    -no-cups
    -cups

    是 否编译CUPS支持,是不是想问什么用啊?~~~~囧,开打印店用的。好了,不说冷笑话,CUPS给Unix/Linux用户提供了一种可靠有效 的方法来管理打印。它支持IPP,并提供了LPD,SMB(服务消息块,如配置为微软WINDOWS的打印机)、JetDirect等接口。CUPS还可 以浏览网络打印机。它的开发提供者是大名鼎鼎的“水果生产商”----苹果公司。

    -no-iconv
    -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的样式风格,对于需要美化界面的项目来说,可以好好选择下。

    -no-opengl
    -opengl <api>

    是否加入opengl的支持,OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。不过对于一般的开发来说,似乎有很少用到的地方。

    -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库的支持,glib库对应即gtk库,就也是说加入后可以使用gtk。

    转自:http://www.cnitblog.com/zouzheng/archive/2010/07/06/67199.html

    https://blog.csdn.net/yuzeze/article/details/51160276

  • 相关阅读:
    面板评分太低会算两次
    没有使用大漩涡传送门没有杀死大法师瓦格斯
    win10创建本地用户
    延迟着色
    GPU 优化总结
    UE4 减少APK包的大小
    UE4 性能优化方法(工具篇)
    Unreal Engine 4的常见Tips
    虚幻引擎4设置Visual Studio
    模型导入的单位问题
  • 原文地址:https://www.cnblogs.com/liushui-sky/p/9121907.html
Copyright © 2011-2022 走看看