Qt打包如何避免资源文件被打包至exe文件中

最近在发布自己写的项目时,发现编译后的.exe文件比较臃肿:

经过后续分析,发现是Qt中的资源文件(.qrc)被编译到可执行文件中了。

解决方案

  1. 将资源文件(.qrc)从项目中移除

  2. 使用 rcc 单独编译资源文件(.qrc)

找到Qt提供的编译套件(在Qt安装后,开始菜单中都能找到):

我这里使用的是MSVC 2019 32-bit,这里根据项目选择。跳转至项目中资源文件(.qrc)目录下,执行:

1 rcc -binary .\MainFrame.qrc -o MainFrame.rcc

上述命令用于将Qt资源文件编译为二进制格式。将产生的 MainFrame.rcc 拷贝至 .exe 同级目录下。

  3. 在main()函数中手动注册资源文件

1 int main(int argc, char *argv[])
2 {
3      MusicApplication a(argc, argv);
4      QResource::registerResource("./MainFrame.rcc");  //注册资源文件
5      MainFrame w;
6      w.show();
7      return a.exec();
8 }

重新编译项目后,发现生成的 .exe文件体积减少很多:

 

 

 

posted @ 2025-05-22 16:01  西兰花战士  阅读(122)  评论(0)    收藏  举报