新机器部署Qt后qmake与jom构建时找不到头文件问题
检查影子构建目录层级
报错路径里的../../../../../../说明qmake计算的相对路径层级错误。对比旧机器的影子构建目录位置,新机的构建目录与源码目录的层级差可能和旧机不一致,导致Qt头文件的相对路径计算偏差。
解决:调整影子构建目录到和旧机器相同的层级;或者在.pro文件中强制使用绝对路径引入Qt头文件:INCLUDEPATH += $$absolute_path($$[QT_INSTALL_HEADERS])验证Qt套件环境配置
即使系统环境变量和旧机一致,Qt Creator可能未加载最新环境,或者MSVC套件配置有误。
解决:重启Qt Creator,进入Tools > Options > Kits,检查MSVC 2019 x64套件的Environment项,确认QTDIR、INCLUDE变量指向正确的Qt路径;也可打开MSVC 2019 x64命令提示符,执行echo %QTDIR%验证路径有效性。清理影子构建目录并重新生成Makefile
影子构建目录下的旧Makefile残留可能导致路径异常,重新qmake也可能无法完全覆盖。
解决:删除影子构建目录下的所有文件,重新执行qmake,再启动jom构建。检查.pro文件的路径配置
若.pro文件中硬编码了相对路径,新机目录结构变化会导致路径失效。
解决:确保已添加QT += widgets(自动引入QtWidgets头文件路径),避免手动写死相对路径;若需手动添加,改用Qt内置变量:INCLUDEPATH += $$QT_INSTALL_HEADERS/QtWidgets解决非影子构建的运行依赖问题
无法运行是因为系统PATH未包含Qt动态库目录,旧机器可能已配置过。
解决:将Qt/5.15.2/msvc2019_64/bin添加到系统PATH;或使用windeployqt部署:打开MSVC x64命令提示符,进入exe所在目录,执行windeployqt your_app.exe。
内容的提问来源于stack exchange,提问作者churro

