大型Qt外部二进制资源文件



我想使用Qt外部资源文件作为我的Android应用程序的扩展文件。在资源文件中捆绑的资源的总大小是700+ MB。我经历过资源编译器(rcc)在我的计算机上挂起和崩溃之前不能处理超过500MB的资源。我真的想做一个大文件,因为这样在上传Android扩展文件时就容易多了。

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

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

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

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

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

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

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

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

如果使用-binary选项编译数据

rcc -binary myresource.qrc -o myresource.rcc

您将把数据构建到一个动态库中,您可以在应用程序启动之后加载该动态库,调用

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

这里是一个类似的问题,但这是集中在资源的动态加载,没有大小:我怎么能嵌入一个Qt资源到一个。dll文件?

这些链接应该是有用的:

    http://doc.qt.io/qt-5/resources.html
  • http://doc.qt.io/qt-5/rcc.html

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

最新更新