QT失败 CMake Error: uic.exe -h
问题的根本原因:1、QT 没有安装好,uic.exe 依赖的lib或者其他文件不能正常加载到操作系统中2、环境变量没有配置好,导致uic.exe 依赖的东西无法正常加载出来。
·
CMake Error: AUTOUIC for target MIPETReconMLAA: Test run of “uic” executable “C:/Qt/Qt5.4.2-64bit-msvc2010-debug/qtbase/bin/uic.exe” failed.
C:/Qt/Qt5.4.2-64bit-msvc2010-debug/qtbase/bin/uic.exe -h
CMake Error: uic.exe -h
问题的根本原因:
1、 QT 没有安装好,uic.exe 依赖的lib或者其他文件不能正常加载到操作系统中
2、环境变量没有配置好,导致uic.exe 依赖的东西无法正常加载出来
解决步骤
根据错误信息,CMake在尝试调用Qt的uic工具时失败。以下是逐步排查和解决问题的方案:
1. 验证 uic.exe 是否存在且可执行
- 检查文件路径
确认C:/Qt/Qt5.4.2-64bit-msvc2010-debug/qtbase/bin/uic.exe文件是否存在。如果不存在:- 可能是Qt安装不完整,需重新安装Qt。
- 确认安装路径是否正确(如是否误装了32位版本)。
- 手动运行
uic.exe
在命令行中手动执行以下命令,观察是否能正常输出帮助信息:C:/Qt/Qt5.4.2-64bit-msvc2010-debug/qtbase/bin/uic.exe -h- 如果提示缺失DLL(如
Qt5Cored.dll),跳转到 步骤3。 - 如果提示“不是有效的Win32程序”,可能是编译器不兼容(如使用MSVC2017编译但Qt是MSVC2010版本),需安装匹配的Qt。
- 如果提示缺失DLL(如
2. 检查 CMAKE_PREFIX_PATH 配置
- 路径设置建议
确保CMAKE_PREFIX_PATH指向Qt的根目录,而不是子目录(如qtbase):set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.4.2-64bit-msvc2010-debug") - 通过命令行指定
如果使用CMake命令行,可以覆盖路径:cmake -DCMAKE_PREFIX_PATH="C:/Qt/Qt5.4.2-64bit-msvc2010-debug" ..
3. 解决依赖的DLL缺失问题
- 检查Qt的
bin目录
确保以下DLL存在于C:/Qt/Qt5.4.2-64bit-msvc2010-debug/qtbase/bin中:Qt5Cored.dll(Debug版)Qt5Core.dll(Release版)- 其他可能的依赖(如
msvcr100.dll,msvcp100.dll)。
- 修复方法:
- 如果DLL缺失,重新安装Qt。
- 将Qt的
bin目录添加到系统PATH环境变量中:set PATH=C:/Qt/Qt5.4.2-64bit-msvc2010-debug/qtbase/bin;%PATH%
4. 检查编译器兼容性
- 确认Qt版本与编译器匹配
- 此Qt版本 (
win32-msvc2010) 是为 Visual Studio 2010 编译的。 - 如果使用其他版本的Visual Studio(如VS2019),需安装对应版本的Qt(如
msvc2019)。
- 此Qt版本 (
- 安装VC++ 2010运行库
如果手动运行uic.exe失败且提示缺少msvcr100.dll,需安装 Visual C++ 2010 Redistributable。
5. 清理CMake缓存
- 删除
build目录并重新生成:rm -rf build mkdir build && cd build cmake .. -DCMAKE_PREFIX_PATH="C:/Qt/Qt5.4.2-64bit-msvc2010-debug"
6. 验证Qt安装完整性
- 使用预编译的Qt二进制包
避免手动编译Qt源码可能导致的配置问题。从 Qt官方下载页面 下载与编译器匹配的预编译版本。 - 检查安装日志
如果自行编译Qt,确保安装命令nmake install或mingw32-make install执行成功。
附加说明
- Debug vs Release配置
如果项目使用Debug模式,确保安装的是Qt的Debug版本(包含调试符号和DLL)。 - 使用Dependency Walker诊断
工具 Dependency Walker 可分析uic.exe的依赖关系,快速定位缺失的DLL。
完成以上步骤后,CMake应能正确调用 uic 工具。如果问题仍存在,考虑更换Qt版本或检查系统环境。
更多推荐


所有评论(0)