我想(再次)精简我的应用程序。 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/