Qt源码编译configure配置参数_-mtdev 在线安装-程序员宅基地

技术标签: Qt源码  Qt  Linux  configure配置  

安装选项

选项 作用
-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选项

下表中第一列中的*表示默认并可行的。+表示默认,但需要进行评估(检测),评估通过才可接受。


选项 作用
* -release 编译和链接Qt的release版本

-debug 编译和链接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) 默认: 最高支持版本
* -shared 创建并使用Qt共享库.

-static 创建并使用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\>作为一个插件在运行时链接 

-system-sqlite 利用操作系统SQLite

-no-qml-debug 不构建在QML调试支持
+ -qml-debug 构建QML调试支持

-platform target 构建的目标操作系统和编译器(默认检测主机系统),读readme文件获取支持的操作系统和编译器列表

-no-sse2 编译不要使用SSE2指令

-no-sse3 编译不要使用SSE3指令

-no-ssse3 编译不要使用SSSE3指令

-no-sse4.1 编译不要使用SSE4.1指令

-no-sse4.2 编译不要使用SSE4.2指令

-no-avx 编译不要使用AVX指令

-no-avx2 编译不要使用AVX2指令

-no-mips_dsp 编译不要使用MIPS DSP指令

-no-mips_dspr2 编译不要使用MIPS DSP Rev2指令

-qtnamespace <name> 把所有的Qt库代码放入namespace <name> {...}

-qtlibinfix <infix> 重命名索引libQt*.solibQt*<infix>.so

-testcocoon Instrument Qt with the TestCocoon code coverage tool.

-gcov 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可用性启发式检测).

-help, -h 显示帮助信息.

第三方库:


选项 作用

-qt-zlib 使用QT自带zlib库
+ -system-zlib 使用操作系统自带的zlib库。

-no-mtdev 不要编译mtdev支持 ,mtdev包含了应用程序对多点触摸协议的支持
+ -mtdev 启用mtdev的支持.
+ -no-journald 不要把日志输出到journald,Journald是为Linux服务器打造的新系统日志方式

-journald 日志输出到journald
+ -no-syslog 不要输出日志到syslog.

-syslog 输出日志到syslog.

-no-gif 不要编译GIF读取支持

-no-libpng 不要编译PNG支持

-qt-libpng 使用Qt自带的libpng
+ -system-libpng 使用操作系统自带的libpng ,http://www.libpng.org/pub/png

-no-libjpeg 不要编译JPEG支持.

-qt-libjpeg 使用QT自带的libjpeg.
+ -system-libjpeg 使用系统自带的 libjpeg ,http://www.ijg.org

-no-freetype 不要编译Freetype2的支持.

-qt-freetype 使用QT自带的libfreetype.
+ -system-freetype 使用系统自带的libfreetype(假如存在) (启用,如果-fontconfig选项开启),http://www.freetype.org

-no-harfbuzz 不要编译HarfBuzz-NG 支持.
* -qt-harfbuzz 使用QT自带的HarfBuzz-NG 去进行文本构形. 仍然可以通过设置QT_HARFBUZZ 环境变量到”old”来禁用.

-system-harfbuzz 使用系统自带的HarfBuzz-NG区进行文本构形.仍然可以通过设置QT_HARFBUZZ 环境变量到”old”来禁用 ,http://www.harfbuzz.org

-no-openssl 不要编译OpenSSL的支持

-openssl 启用运行时OpenSSL支持.

-openssl-linked 启用并链接OpenSSL支持

-no-libproxy 不要编译libproxy的支持
+ -libproxy 使用操作系统自带的libproxy.

-qt-pcre 使用QT自带的PCRE library.
+ -system-pcre 使用操作系统自带的PCRE library

-qt-xcb 使用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 编译XInput2支持.

-no-xcb-xlib 不要编译Xcb-Xlib支持.
* -xcb-xlib 编译 Xcb-Xlib支持.

-no-glib 不要编译 Glib 支持.
+ -glib 编译 Glib 支持.

-no-pulseaudio 不要编译PulseAudio 支持.
+ -pulseaudio 编译 PulseAudio 支持.

-no-alsa 不要编译 ALSA 支持.
+ -alsa 编译 ALSA 支持.

-no-gtkstyle 不要编译GTK theme 支持.
+ -gtkstyle 编译 GTK theme 支持.

附加选项:


选项 作用

-make <part> 在make时添加要构建的组件. (默认为:libs tools examples

-nomake <part> 在构建时排除组件

-skip <module> 排除整个模块的建立

-no-compile-examples 仅安装examples的源码,不要编译它.

-no-gui 不要构建Qt GUI模块和依赖.
+ -gui 构建Qt GUI 模块和依赖.

-no-widgets 不要构建Qt Widgets 模块和依赖.
+ -widgets 构建 Qt Widgets模块和依赖

-R <string> 显示添加一个运行时库的路径去构建Qt libraries.

-l <string> 显示添加一个library.

-no-rpath 不使用库安装路径作为一个运行时库路径 
在苹果的平台上,这意味着使用绝对安装名称(基于在libdir)动态库和框架。
+ -rpath 链接 Qt 库和可执行文件使用库安装路径作为运行时库路径。相当于-R install_libpath

-continue 如果发生错误,尽量继续。

-verbose, -v 打印每个步骤的配置过程的详细的信息。

-silent 减少生成输出,这样可以更容易看到警告和错误。

-no-nis 不要编译NIS 支持.
* -nis 编译 NIS 支持.

-no-cups 不要编译CUPS支持.
* -cups 编译CUPS支持. 要求 cups/cups.h 和libcups.so.2.

-no-iconv 不编译对 iconv(3) 的支持。
* -iconv 编译对 iconv(3) 的支持。

-no-evdev 不编译对 evdev 的支持。
* -evdev 编译对 evdev 的支持。

-no-tslib 不编译对 tslib 的支持 
tslib是对触屏的支持
* -tslib 编译对 tslib 的支持.

-no-icu 不编译对 ICU libraries 的支持. 
这是IBM发布的字符集编码转换库
+ -icu 编译对 ICU libraries 的支持.

-no-fontconfig 不编译系统中的FontConfig支持
+ -fontconfig 编译系统中的FontConfig支持

-no-strip 不对二进制文件和库的使用strip去除不需要的符号.
* -strip 在安装时对二进制文件和库的使用strip去除不需要的符号
* -no-pch 不使用预编译的头支持.

-pch 使用预编译的头支持.
* -no-ltcg 不使用链接时代码生成

-ltcg 使用链接时代码生成.

-no-dbus 不要编译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 将调试信息到一个单独的文件

-no-xcb 不要编译Xcb (X protocol C-language Binding) 支持.
* -xcb 编译 Xcb 支持.

-no-eglfs 不要编译EGLFS (EGL Full Screen/Single Surface) 支持.
* -eglfs 编译 EGLFS 支持.

-no-kms 不要编译KMS的后端.
* -kms 编译 KMS的后端.

-no-gbm 不要编译 GBM 的后端.
* -gbm 编译 GBM的后端.

-no-directfb 不要编译 DirectFB 支持.
* -directfb 编译 DirectFB 支持.

-no-linuxfb 不要编译Linux Framebuffer 支持.
* -linuxfb 编译 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 启用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 选项:

选项 作用
-no-slog2 不编译 slog2 的支持
-slog2 编译 slog2 的支持
-no-pps 不编译 pps 的支持
-pps 编译 pps 的支持
-no-imf 不编译 imf 的支持
-imf 编译 imf 的支持
-no-lgmon 不编译 lgmon 的支持
-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许可不兼容。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xi_gua_gua/article/details/53413930

智能推荐

5个超厉害的资源搜索网站,每一款都可以让你的资源满满!_最全资源搜索引擎-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏41次。生活中我们无时不刻不都要在网站搜索资源,但就是缺少一个趁手的资源搜索网站,如果有一个比较好的资源搜索网站可以帮助我们节省一大半时间!今天小编在这里为大家分享5款超厉害的资源搜索网站,每一款都可以让你的资源丰富精彩!网盘传奇一款最有效的网盘资源搜索网站你还在为找网站里面的资源而烦恼找不到什么合适的工具而烦恼吗?这款网站传奇网站汇聚了4853w个资源,并且它每一天都会持续更新资源;..._最全资源搜索引擎

Book类的设计(Java)_6-1 book类的设计java-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏18次。阅读测试程序,设计一个Book类。函数接口定义:class Book{}该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是 书籍名称、 价格、 作者、 出版年份 。裁判测试程序样例:import java.util.*;public class Main { public static void main(String[] args) { List <Book>_6-1 book类的设计java

基于微信小程序的校园导航小程序设计与实现_校园导航微信小程序系统的设计与实现-程序员宅基地

文章浏览阅读613次,点赞28次,收藏27次。相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低学校的运营人员成本,实现了校园导航的标准化、制度化、程序化的管理,有效地防止了校园导航的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正建筑速看等信息。课题主要采用微信小程序、SpringBoot架构技术,前端以小程序页面呈现给学生,结合后台java语言使页面更加完善,后台使用MySQL数据库进行数据存储。微信小程序主要包括学生信息、校园简介、建筑速看、系统信息等功能,从而实现智能化的管理方式,提高工作效率。

有状态和无状态登录

传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。

九大角度全方位对比Android、iOS开发_ios 开发角度-程序员宅基地

文章浏览阅读784次。发表于10小时前| 2674次阅读| 来源TechCrunch| 19 条评论| 作者Jon EvansiOSAndroid应用开发产品编程语言JavaObjective-C摘要:即便Android市场份额已经超过80%,对于开发者来说,使用哪一个平台做开发仍然很难选择。本文从开发环境、配置、UX设计、语言、API、网络、分享、碎片化、发布等九个方面把Android和iOS_ios 开发角度

搜索引擎的发展历史

搜索引擎的发展历史可以追溯到20世纪90年代初,随着互联网的快速发展和信息量的急剧增加,人们开始感受到了获取和管理信息的挑战。这些阶段展示了搜索引擎在技术和商业模式上的不断演进,以满足用户对信息获取的不断增长的需求。

随便推点

控制对象的特性_控制对象特性-程序员宅基地

文章浏览阅读990次。对象特性是指控制对象的输出参数和输入参数之间的相互作用规律。放大系数K描述控制对象特性的静态特性参数。它的意义是:输出量的变化量和输入量的变化量之比。时间常数T当输入量发生变化后,所引起输出量变化的快慢。(动态参数) ..._控制对象特性

FRP搭建内网穿透(亲测有效)_locyanfrp-程序员宅基地

文章浏览阅读5.7w次,点赞50次,收藏276次。FRP搭建内网穿透1.概述:frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。2.简单的图解:3.准备工作:1.一个域名(www.test.xyz)2.一台有公网IP的服务器(阿里云、腾讯云等都行)3.一台内网主机4.下载frp,选择适合的版本下载解压如下:我这里服务器端和客户端都放在了/usr/local/frp/目录下4.执行命令# 服务器端给执_locyanfrp

UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)_uva12534-程序员宅基地

文章浏览阅读687次。题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是_uva12534

免费SSL证书_csdn alphassl免费申请-程序员宅基地

文章浏览阅读504次。1、Let's Encrypt 90天,支持泛域名2、Buypass:https://www.buypass.com/ssl/resources/go-ssl-technical-specification6个月,单域名3、AlwaysOnSLL:https://alwaysonssl.com/ 1年,单域名 可参考蜗牛(wn789)4、TrustAsia5、Alpha..._csdn alphassl免费申请

测试算法的性能(以选择排序为例)_算法性能测试-程序员宅基地

文章浏览阅读1.6k次。测试算法的性能 很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PE_算法性能测试

Lane Detection_lanedetectionlite-程序员宅基地

文章浏览阅读1.2k次。fromhttps://towardsdatascience.com/finding-lane-lines-simple-pipeline-for-lane-detection-d02b62e7572bIdentifying lanes of the road is very common task that human driver performs. This is important ..._lanedetectionlite

推荐文章

热门文章

相关标签