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文件体积减少很多:


浙公网安备 33010602011771号