如何从源代码构建一系列 Qt5 子模块?
Posted
技术标签:
【中文标题】如何从源代码构建一系列 Qt5 子模块?【英文标题】:How to build a selection of Qt5 submodules from source? 【发布时间】:2019-03-21 08:54:20 【问题描述】:Qt 下载页面 (http://download.qt.io/official_releases/qt/5.12/5.12.2/) 提供了多个源档案,可用于从源代码构建 Qt5。一个包含所有资源,我设法成功构建了它,但它需要很长时间,并且包含很多我不使用的东西。
他们还提供子模块源包,这些包可用于仅构建 Qt 提供的子集。但是,我找不到有关如何正确构建这些的手册。我需要 QtBase 和 QtXmlPatterns 包。我设法自己构建了 QtBase 包,但我想知道如何构建多个子模块。
QtXmlPatterns 包不能自己构建,所以我尝试简单地将源代码从 QtXmlPatterns 子模块复制到 QtBase 子模块中。但是当我执行配置步骤时,这给了我错误。
那么,将多个子模块源包组合成一个可以构建的设置的正确程序是什么?
感谢您的宝贵时间。
编辑: 不确定它是否相关,但我正在使用 Visual Studio 2019 在 Windows 上构建 Qt5.12.2。
【问题讨论】:
请问如何只构建QtBase?我仍处于能够构建所有东西的阶段,而不仅仅是单个组件。 我认为你必须从download.qt.io/archive/qt/5.14/5.14.2/submodules 下载qtbase-everywhere-src 包。这个包可以像在download.qt.io/archive/qt/5.14/5.14.2/single 找到的完整包一样构建。我假设你已经成功构建了完整的包。 【参考方案1】:构建流程与构建完整的源代码包有点不同。
按照您已经完成的方式配置和构建独立的 qtbase。使用 PREFIX 以便您可以调用make install
并将构建结果安装到文件系统中的某个位置。
您可能希望将生成的 bin 文件夹添加到 PATH 环境变量中
将您要构建的其他子模块提取到单独的文件夹中
在您的子模块上运行qmake
、make
和make install
,就好像它是一个“普通”Qt 项目一样。这会将子模块安装到 qtbase 的 PREFIX 位置。
【讨论】:
什么是前缀? PREFIX 是构建 qtbase 时 Qt 的配置工具的-prefix
参数。就是安装位置。以上是关于如何从源代码构建一系列 Qt5 子模块?的主要内容,如果未能解决你的问题,请参考以下文章
在 Linux 上从源代码构建的 Qt5 上找不到 Qt 平台插件 xcb
无法从 qt5.6 源代码为 raspberry pi 2 构建 qtwebengine