Qt配置选项

本文详细介绍了Qt的配置过程,包括源目录、构建目录和安装目录的设定,如何剔除或包含模块及特性,第三方库的选择,编译器选项的设定,以及交叉编译的相关选项。重点讲解了configure命令的使用,如排除模块、设置prefix以及管理模块功能。同时,提到了在不同平台和编译器环境下构建Qt的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt配置选项

configure是一个命令行工具,它确定如何为特定平台构建Qt。配置可以排除Qt中的功能,并确定Qt如何在主机平台上构建和部署应用程序。该页面讨论了一些 configure 选项,但是要获得完整的选项列表,请输入命令configure -h。配置应从Qt主目录运行。

源目录,构建目录和安装目录

所述源目录包含从源包或git仓库中获得的源代码。所述构建目录是构建相关的文件,例如生成文件,对象文件和其他中间文件的存储。该安装目录是二进制文件和库安装,使用或者由系统或应用程序。

建议通过阴影构建和使用该-prefix选项将这些目录分开。这使您能够保持Qt 源代码树中的构建工件和二进制文件干净,这些工件和二进制文件存储在单独的目录中。如果要从同一源代码树进行多个构建,但要针对不同的配置,则此方法非常方便。要进行影子构建,请在configure单独的目录中运行:

mkdir ~/qt-build
cd ~/qt-build
~/qt-source/configure -prefix /opt/Qt5.9
qmake

使用-prefix选项进行配置意味着将Qt二进制文件和库安装到另一个目录中,/opt/Qt5.9在这种情况下就是这样。运行会qmake在〜/ qt-build目录而不是源目录中生成Makefile 。在生成文件之后,运行以下命令来构建Qt二进制文件和库并安装它们:

make
make install

注意:仅当Qt配置了-prefix时,才需要执行“ make install”步骤,这是基于Unix的平台上的默认设置,除非使用了-developer-build configure选项。在Windows上,默认情况下Qt被配置为非前缀版本。

注意:-developer-build用途是开发Qt,而不是用于运输应用程序。这样的构建包含比标准构建更多的导出符号,并以更高的警告级别进行编译。

模块和功能

Qt由不同的模块组成,这些模块的源可以在顶级源目录的不同目录中找到。用户可以明确排除特定的顶级目录以限制构建时间。此外,每个Qt模块可能具有可以显式启用或禁用的功能。

剔除模块

配置-skip选项允许将顶级源目录从Qt构建中排除。请注意,许多目录包含多个Qt模块。例如,要从Qt构建中排除Qt NFC和Qt蓝牙,请提供-skip qtconnectivity配置参数。

./configure -skip qtconnectivity
包含或剔除特性feature

使用-feature-<feature>-no-feature-<feature> 选项
例如,要禁用Accessibility,请提供-no-feature-accessibility作为参数:

./configure -no-feature-accessibility

configure -list-features在命令行上显示所有可用features的列表。请注意,一个 feature 可能取决于其他 feature,因此禁用一个 feature 可能会对其他 feature 产生副作用。

疑惑:官方提到“作为用于设备创建的Qt的一部分的Qt配置工具允许通过方便的用户界面来调整feature和依赖项”,但是在QT5.12.0版本中使用工具配置的时候,并不能显示features的依赖关系,模块的依赖确实可以。

第三方库

Qt源码包包括第三方库。要设置Qt是使用库的系统版本还是使用捆绑的版本,请在库名称之前-system或之中传递以-qt进行配置。
下表总结了第三方选项:

Library NameBundled in QtInstalled in System
zlib-qt-zlib-system-zlib
libjpeg-qt-libjpeg-system-libjpeg
libpng-qt-libpng-system-libpng
xcb-qt-xcb-system-xcb
reetype-qt-freetype-system-freetype
PCRE-qt-pcre-system-pcre
HarfBuzz-NG-qt-harfbuzz-system-harfbuzz

也可以使用-no代替来禁用对这些库的支持-qt。例如,要使用系统的xcb库并禁用zlib支持,请输入以下内容:

./configure -no-zlib -qt-libjpeg -qt-libpng -system-xcb

编译器选项

-platform选项设置用于构建Qt源的主机平台和编译器。在“ 受支持的平台”页面中找到受支持的平台和编译器的列表,而完整列表位于qtbase/mkspecs目录中。

例如,在Ubuntu Linux系统上,Qt可以通过clang或g++等几种编译器进行编译:

./configure -platform linux-clang
./configure -platform linux-g++
./configure -platform linux-g++-32

之后,生成的Makefile将使用适当的编译器命令。

交叉编译选项

要配置Qt以进行跨平台开发和部署,需要为目标平台设置开发工具链。此设置在受支持的平台之间有所不同。

常见选项有:

  • -xplatform:目标平台。有效的xplatform选项与qtbase/mkspecs中的-platform选项相同。
  • -device:特定的设备或芯片组。可在qtbase/mkspecs/devices中找到与之兼容的配置设备列表。有关更多信息,请访问Devices Wiki页面。
  • -device-option:设置其他qmake变量。例如,-device-option CROSS_COMPILE=<path-to-toolchain>提供CROSS_COMPILE某些设备所需的环境变量。
    注意:非桌面目标的工具链通常带有所谓的sysroot,需要针对Qt对其进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值