c++ - 如何在没有 QtXmlPatterns、QtSvg 和 QtSql 的情况下编译 QtDeclarative

标签 c++ qt qml

我想(再次)精简我的应用程序。 QtDeclarative 依赖于我根本不使用的 QtXmlPatterns、QtSvg 和 QtSql,所以我想在没有它们的情况下编译库。

是否有人更改了 QtDeclarative 的源文件(或知道如何做)?

最佳答案

您应该能够按如下方式配置 Qt:

./configure -no-xmlpatterns -no-svg

QtDeclarative 中依赖于这些模块的部分将被自动禁用。例如,删除 QtXmlPatterns 只会导致 XmlListModel 不可用,因为它基于 XQuery。

这不是 LGPL 意义上的 Qt 修改,因此无需自行分发 Qt 源代码。

不幸的是,目前 -no-sql 选项不存在预处理器逻辑,因此这似乎是 QtDeclarative 的硬依赖。但是,我可以想象一个使这个成为可选的补丁会被接受。如果您想了解如何做到这一点,请查看 src/declarative#ifdef QT_NO_XMLPATTERNS 的用法,并注意 qdeclarativexmllistmodel 的条件包含。 src/declarative/util/util.pri 中的 cpp

关于c++ - 如何在没有 QtXmlPatterns、QtSvg 和 QtSql 的情况下编译 QtDeclarative,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360221/

相关文章:

c++ - 我怎样才能得到 QObject 的 child ?

c++ - 计算 View 偏移以在鼠标光标的位置放大

qt - 如何在 QML 中隐藏菜单项

c++ - Boost 系统 1.69.0 不只是标题?

c++ - 将 const 对象显式传递给构造函数,该构造函数采用对多态类的 const 引用

c++ - `#include <iostream>` 和 `-std=c++0x` 坏了

c++ - 使用组合框在qt对话框中切换不同的表

java - 在 c++/python/java 中内置抽象数据类型

xcode - 如何使用 qmake 和 QT 生成 xcode 项目

c++ - QNetworkAccessManager稍后在添加请求时删除