Qt 5.15.2构建QObject依赖路径错误,如何指定绝对路径?
问题
在Windows 10系统下,使用Qt 5.15.2及C++编译器16.5.29911.84(x86_amd64)构建应用时,始终报错:
Dependent '..\..\..\..\..\Qt\5.15.2\msvc2019_64\include\QtCore\QObject does not exist
已尝试以下操作:
- 确认QObject存在于指定路径(确实存在)
- 在.pro文件中修改INCLUDEPATH,添加QObject所在路径
"C:\Qt\5.15.2\msvc2019_64\include\QtCore" - 确认头文件中已正确包含
#include <QObject> - 验证.pro文件中已添加
QT += core - 在Windows中设置环境变量
QTDir = C:\Qt\5.15.2\msvc2019_64,并将%QTDir%\bin添加到PATH - 卸载并重新安装Qt
每次修改后都会清理项目、运行qmake再构建,但仍报原错误。
更新:已定位到问题是makefile中的文件路径错误,将路径从..\..\..\..\..\Qt\5.15.2\*改为C:\Qt\5.15.2\*后应用可正常构建。请问如何在Qt中指定使用绝对路径而非相对路径?
解决方法
1. 强制qmake生成绝对路径Makefile
在项目的.pro文件中添加以下配置:
CONFIG += absolute_paths
该配置会让qmake在生成Makefile时,所有依赖路径默认使用绝对路径,替代自动生成的相对路径。
2. 手动指定Qt绝对路径变量
如果上述配置不生效,可在.pro文件中直接硬编码Qt的绝对路径,覆盖qmake的自动路径逻辑:
QT_INSTALL_PREFIX = C:/Qt/5.15.2/msvc2019_64 INCLUDEPATH += $$QT_INSTALL_PREFIX/include INCLUDEPATH += $$QT_INSTALL_PREFIX/include/QtCore LIBS += -L$$QT_INSTALL_PREFIX/lib
注意路径使用斜杠/或者转义反斜杠\\,避免Windows路径的转义冲突。
3. 修正Qt Kit配置
打开Qt Creator的工具 > 选项 > 构建和运行 > Kits,选中当前使用的MSVC2019_64 Kit:
- 确认Qt版本选择的是
C:\Qt\5.15.2\msvc2019_64 - 点击Qt版本的详情按钮,检查其路径是否为绝对路径,若不是则手动修改为绝对路径
- 重新选择项目的Kit,清理项目后重新运行qmake再构建
4. 简化项目路径层级
相对路径错误常和项目所在路径层级过深有关,导致生成的相对路径超出预期。可将项目移动到层级较浅的目录(比如C:\Projects下),减少路径解析出错的概率。
内容的提问来源于stack exchange,提问作者PrematureCorn
相关产品推荐
相关产品推荐

