最近,我跟着它是否合法或不建商业/专有应用了Qt4-interest邮件列表上的讨论和静态链接的Qt4进去。虽然有一些未经证实的方式(通过向客户提供目标文件和Makefile等),但这听起来不像是一个好主意。大厦优化的Qt4 - “的./configure”标志及其含义
我的一个项目使用LGPL许可的Qt4库和我船它们作为单独的DLL/Dylibs /这样对我的客户,使用所有平台上的一个简单的安装。虽然这个作品不错,到目前为止,我想通过只包括我需要什么,二)增加我的应用程序的启动/加载减速Qt库的大小,以优化)的安装程序的大小。
我熟悉编译Qt的自己,但Qt的有很多标志和开关。
现在我用下面的标志建筑:
./configure \
-fast \
-opensource \
-qt-sql-sqlite \
-nomake demos examples \
-silent \
-no-qt3support \
-no-gif \
-plugin-sql-mysql \
-release \
-no-xmlpatterns \
-no-multimedia
我不能完全肯定其效果/影响下面的标志有:
-no-stl
-no-javascript-jit
-no-nis
-separate-debug-info
-no-openvg
-no-mitshm
还有什么我能做的,例如,通过提供优化开关编译器,或“剥离”未使用的功能进行内置Qt库,使之更小(这对静态构建来说很容易)。我没有太多的经验。
哦,只是作为一个侧面说明,我的编译的应用程序大小约为600 KB(未剥离的)对Qt的动态链接时。我对它进行了实验,发现静态链接时其大小约为4 MB;但这样我就不必再包含40 MB的Qt库了。
所以,把一切都入一个问题/请求:
如果你比我更先进的关于这个主题,你怎么优化/部署自己的应用程序,并确保他们启动速度快,只包含需要什么?
感谢您的答复! 其实,我只是运送需要的东西,包括QtCore,QtGui,QtWebKit,QtXml,QtSql和QtNetwork。 我使用'-no-stl'时有什么问题?我会尽力了解更多关于链接时间代码生成的内容,因为这似乎很有趣。另外排除一些样式是一个非常好的主意,因为我只是在OS X/Windows上使用本机样式。 – BastiBen 2009-11-27 08:58:51
您将失去QString和basic_string之间以及QTL容器和STL容器之间的转换函数。 – rpg 2009-11-27 12:51:05
感谢您解决这个问题。我不记得在任何地方使用过STL类/类型。通常Qt的东西对我来说工作得很好。 :) – BastiBen 2009-11-28 11:43:53