如何在没有QtXmlPatterns,QtSvg和QtSql的情况下编译QtDeclarative

| 我想再次简化我的应用程序。 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
的用法,并注意在
src/declarative/util/util.pri
中有条件地包含
qdeclarativexmllistmodel.cpp
。     
        这可能会导致删除依赖项时出现问题,但是您可以在pro文件中尝试
QT -= sql
等,然后查看得到的错误。否则,您可以尝试修改QtDeclarative的源代码并重新编译QT,但是由于它使用QML布局,因此我认为要删除对QtXmlPatterns的依赖可能非常困难。 这是QT的已知缺点之一,您可以使用该框架获得大量功能,但同时又会大大膨胀。另外请记住,如果您要做的不仅仅是链接到现有库,则LGPL要求您在QT本身中发布更改的源。     

要回复问题请先登录注册