大Qt外部二进制资源文件

时间:2015-08-16 23:12:42

标签: android c++ qt rcc qt-resource

我想将Qt外部资源文件用作我的Android应用的扩展文件。要捆绑在资源文件中的资源的总大小为700 MB。我经历过资源编译器(rcc)在我的计算机上挂起并崩溃之前无法处理超过500MB的内容。我真的想在大文件上制作,因为这样可以更轻松地上传Android的扩展文件。

我使用以下参数从命令行运行rcc工具:

rcc -binary -no-compression myQrcFile.qrc -o myOutputFile

我需要不使用压缩才能直接播放资源文件中捆绑的视频文件,但这不是问题。

我有两个问题,但第一个是主要问题:

  1. 是否有办法在一个文件中捆绑文件总大小超过500MB的文件?
  2. 外部 Qt资源文件的大小是否会影响应用程序的性能?较大的文件=缓慢加载或类似?

2 个答案:

答案 0 :(得分:0)

要创建较小的资源数据,您可以尝试更改压缩(s,-compress

为了加快加载速度,在Qt中嵌入资源似乎有两种可能性。

除非您明确指定将资源数据创建为外部库,否则资源数据将嵌入到可执行文件中,并将在应用程序启动时加载(对应用程序图标,字体等有意义)

如果使用-binary选项

编译数据
rcc -binary myresource.qrc -o myresource.rcc

您将数据构建到动态库中,您可以在稍后的位置加载,而不是通过调用启动应用程序

QResource::registerResource("/path/to/myresource.rcc");

以下是关于SO的类似问题,然而其重点是动态加载资源,而不是大小:How can I embed a Qt resource into a .dll file?

这些链接应该会有所帮助:

答案 1 :(得分:0)

我使用的是MinGW,它是一个32位编译器。我改为MSVC 64位编译器,我可以创建大型外部资源文件。