Qt 5.1的模块及其相互依赖性?
我正在寻找一种方法来创建Qt5.1的最小静态构建。所谓最小,我指的是一个只包含一组基本可用的小部件类的构建(包括通过OpenGL画布/小部件的2D图形加速)。我的目标是在Windows7上实现一个32位的静态构建,使用他们的软件和工具包 我已经下载了整个源代码树,由于OpenSSL和ICU等包的依赖性,在编译时遇到了一些问题(最新的OpenSSL没有编译)。我想看看,我是否可以避免这些包的依赖性,同时实现Qt5.1的最小静态构建,这样我的最终可执行文件就不会太大了 我看了一下这个列表: Q1:我需要选择这些模块中的哪一个来构建一个基本的Qt,而不需要所有花哨的东西 Q2:这些模块是否以某种方式相互依赖(我假设它们都依赖于“qtbase”) Q3:我是否使用该列表中的名称(例如:“qtxmlpatterns”、“qtx11extras”、“qtwebkit”等)在我的Qt构建的配置中取消选择它们Qt 5.1的模块及其相互依赖性?,qt,compilation,mingw,qt5,msys,Qt,Compilation,Mingw,Qt5,Msys,我正在寻找一种方法来创建Qt5.1的最小静态构建。所谓最小,我指的是一个只包含一组基本可用的小部件类的构建(包括通过OpenGL画布/小部件的2D图形加速)。我的目标是在Windows7上实现一个32位的静态构建,使用他们的软件和工具包 我已经下载了整个源代码树,由于OpenSSL和ICU等包的依赖性,在编译时遇到了一些问题(最新的OpenSSL没有编译)。我想看看,我是否可以避免这些包的依赖性,同时实现Qt5.1的最小静态构建,这样我的最终可执行文件就不会太大了 我看了一下这个列表: Q1:
这也很好,解释一下Qt5的各个子模块?如果有人能指出任何关于这个主题的链接或文档,那也太好了。ICU可以静态链接,您可以自定义它(请参阅文档)以减小大小。默认情况下,数据也很大,我不知道您需要多少数据。您只能包含足够的数据以一种语言运行
答案的一部分。没有必要禁用Qt模块。每个使用Qt的应用程序决定它使用什么模块并与之链接。仅限控制台的基本应用程序只能使用核心模块。这就是在Qt中创建web服务时所使用的方法。我也有同样的目标。我想“缩小”Qt,只构建库/DLL的一小部分,而忽略其余部分 我确实成功了,至少在MacOSX上是这样。我认为这种方法也适用于其他平台 我原以为诀窍是为“configure”脚本找到某种排除标志,但事实并非如此 以下是我所做的:
- qtbase/src/src.pro
- qtbase/src/plugins/plugins.pro
- qtbase/examples/examples.pro
./configure -prefix ~/my_test_dir/
make -j2 module-qtbase
make -j2 module-qtbase-install_subtargets
成功。这只构建和安装了essentials(QtCore、QtGui、QtOpenGL、QtWidgets),并跳过了所有支持动态库,如QtConcurrent、QtMultimedia、QtSql和QtWebKit。现在我得到了一个风滚草徽章。谢谢,不过谢谢。我以为这个问题已经被遗忘了。是否了解Qt 5.1中的各个模块?@OleThomsenBuus否,对不起。我在重症监护病房工作,一直在寻找重症监护病房的问题。不过,看看你得到的另一个答案。我会在某个时候尝试一下。我很久以前就放弃了:)我从来没有想过有必要更改.pro文件本身。我使用的是Windows7(目前为32位),在编译过程中取得了相对的进展。在某个时刻,30-45分钟后,与ICU的连接会把事情搞砸,制造过程也会停止。我再也回不去了。也许我应该再试一次。