首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt资源系统rcc选项和bz2?

Qt资源系统rcc选项和bz2?
EN

Stack Overflow用户
提问于 2016-05-18 04:56:48
回答 2查看 245关注 0票数 0

我的应用程序需要一个12MB的文本文件作为内置资源。我很惊讶最终得到的可执行文件只有12MB多一点,所以我在命令行上尝试了zip,它只减少了68%,低于70%的阈值。

bz2将其压缩得更小。有没有一种方法可以使用这种压缩,或者更好的方法?我确信纯文本文件过去可以很好地压缩。

我不清楚如何降低Makefile中的“阈值”。rcc -h说:

代码语言:javascript
复制
--threshold <level>  Threshold to consider compressing files.

那么这会转化为--threshold="70%"吗?

EN

回答 2

Stack Overflow用户

发布于 2016-05-18 05:44:15

首先,-threshold标志上的documentation

指定在决定是否压缩文件时使用的阈值级别(以百分比表示)。如果文件大小的减少大于阈值级别,则对其进行压缩;否则,将存储未压缩的数据。默认阈值级别为70%,这意味着将原始大小为30%或更小的压缩文件存储为压缩数据。

要将压缩级别增加到最大值,请执行以下操作:

代码语言:javascript
复制
rcc -level 9 ...

或者将压缩阈值提高到足够的程度:

代码语言:javascript
复制
rcc -threshold 35% ...

当然,您可以将这两者结合起来。默认的压缩级别是-1,这意味着zlib决定它压缩的程度。

编辑:文档在讨论压缩时自相矛盾(或者根本不清楚)。对于-threshold标志,它使用整数值而不是百分比:

代码语言:javascript
复制
rcc -compress 2 -threshold 3

需要进行一些测试。

票数 0
EN

Stack Overflow用户

发布于 2016-05-18 08:18:35

谢谢你的回答,乔恩。足以让命令行zip报告的通缩达到71%,生成的可执行文件降到4.6MB,所以理论是正确的。

rcc似乎只产生类似于输出的XML,但接受-threshold和-compress选项。在没有语法错误报告的情况下,任何值都是可以接受的。

我不确定将阈值选项放在makefile中的什么位置。引用我的文件的部分:

都被拒绝了。

此行定义CXXFLAGS:CXXFLAGS = -pipe -g -Wall -W -D_REENTRANT -fPIC $(DEFINES)

我甚至尝试将'COMPRESS = gzip -9f‘行改为'COMPRESS = bzip2 -9f',但结果没有什么不同。

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

https://stackoverflow.com/questions/37286107

复制
相关文章

相似问题

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