微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在没有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本身中发布更改的源。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。