Windows下MinGW静态编译Qt出现AutoUic subprocess错误如何解决
解决方案
方案1:跳过不需要的qttools模块(推荐,最快解决)
大部分场景下静态编译Qt仅需要核心功能,不需要Qt Designer等开发工具,直接在configure参数中添加-skip qttools跳过该模块即可,修改后的完整配置命令如下:
configure -opensource -confirm-license -platform win32-g++ -static -release -opengl desktop -qt-zlib -qt-libpng -qt-libjpeg -nomake examples -skip qttools
执行新配置前先清理之前的编译缓存:
mingw32-make distclean
重新执行配置后再编译即可。
方案2:需要使用qttools模块的修复方法
如果确实需要用到qttools中的功能(如lupdate、lrelease等),按以下顺序排查修复:
- 检查路径合法性:Qt源码存放路径、MinGW安装路径都不能包含中文、空格、特殊字符,需使用全英文无空格路径,比如
D:\dev\qt5、D:\dev\mingw64 - 替换匹配的MinGW版本:使用Qt官方维护的对应Qt版本的MinGW编译器,不要使用第三方自行编译的MinGW,可通过Qt官方安装器下载对应版本的MinGW包
- 修复源码完整性:重新执行子模块同步命令,确保代码完整:
perl init-repository -f - 避免并行编译依赖问题:先取消并行编译参数
-j4,使用单线程编译,或先单独编译基础模块再编译其他模块:mingw32-make module-qtbase mingw32-make -j4 - 仅跳过Designer组件:若仅Qt Designer编译失败,可在configure中添加
-no-feature-designer参数,保留qttools的其他功能。
内容的提问来源于stack exchange,提问作者zorggish
相关产品推荐
相关产品推荐

