首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有QtXmlPatterns、QtSvg和QtSql的情况下编译QtDeclarative

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

Stack Overflow用户
提问于 2011-06-15 23:27:41
回答 2查看 1.2K关注 0票数 3

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

有没有人修改了QtDeclarative的源文件(或者知道该怎么做)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-17 08:09:16

您应该能够配置Qt,如下所示:

代码语言:javascript
复制
./configure -no-xmlpatterns -no-svg

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

这不是对LGPL意义上的Qt的修改,所以不需要自己去分发Qt源代码。

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

票数 2
EN

Stack Overflow用户

发布于 2011-06-15 23:53:06

删除依赖项可能会导致问题,但你可以在你的pro文件中尝试QT -= sql等,看看你得到了什么错误。否则,您可能会尝试修改QtDeclarative的源代码并重新编译QT,但由于它使用QML布局,我认为可能很难消除对QtXmlPatterns的依赖。

这是QT的一个众所周知的缺点,你可以通过该框架获得大量的功能,但同时你也会得到明显的膨胀。此外,请记住,如果您不仅仅是链接到现有的库,那么LGPL要求您发布您在QT中更改的源代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6360221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档