我想(再次)精简我的应用程序。QtDeclarative依赖于QtXmlPatterns、QtSvg和QtSql,我根本不使用它们,所以我想编译没有它们的库。
有没有人修改了QtDeclarative的源文件(或者知道该怎么做)?
发布于 2011-06-17 08:09:16
您应该能够配置Qt,如下所示:
./configure -no-xmlpatterns -no-svgQtDeclarative中依赖于这些模块的零件将被自动禁用。例如,删除QtXmlPatterns只会导致XmlListModel不可用,因为它是基于XQuery的。
这不是对LGPL意义上的Qt的修改,所以不需要自己去分发Qt源代码。
不幸的是,目前不存在用于-no-sql选项的预处理器逻辑,因此这似乎是QtDeclarative的硬依赖。然而,我可以想象一个补丁,使这是可选的将被接受。如果您想了解如何做到这一点,请查看#ifdef QT_NO_XMLPATTERNS在src/declarative中的用法,并注意src/declarative/util/util.pri中有条件地包含qdeclarativexmllistmodel.cpp。
发布于 2011-06-15 23:53:06
删除依赖项可能会导致问题,但你可以在你的pro文件中尝试QT -= sql等,看看你得到了什么错误。否则,您可能会尝试修改QtDeclarative的源代码并重新编译QT,但由于它使用QML布局,我认为可能很难消除对QtXmlPatterns的依赖。
这是QT的一个众所周知的缺点,你可以通过该框架获得大量的功能,但同时你也会得到明显的膨胀。此外,请记住,如果您不仅仅是链接到现有的库,那么LGPL要求您发布您在QT中更改的源代码。
https://stackoverflow.com/questions/6360221
复制相似问题