我刚遇到一个问题,又花了几个小时。
我有一个依赖于 Qt
的项目。我刚刚安装了 Qt 5.9.1 但错误:
E1696 cannot open source file "QDir" Logger \Logger.cpp 3
E1696 cannot open source file "QFile" Logger \Logger.cpp 4
E1696 cannot open source file "QString" Logger \Logger.cpp 5
E1696 cannot open source file "QStringBuilder" Logger \Logger.cpp 6
E1696 cannot open source file "QDateTime" Logger c\Logger.cpp 7
E1696 cannot open source file "QMessageBox" Logger \Logger.cpp 8
E1696 cannot open source file "QApplication" Logger \Logger.cpp 9
仍然出现。为什么?
我尝试在属性页中使用
$(QTDIR)
变量将包含文件夹添加到项目中。但它不是指我安装 Qt 的目录。 最佳答案
从 QTDIR not found error building project in MSVC ( this answer ) 我知道问题出在 *.vcxproj.user
。
解决方案1。
在解决方案中的所有 <QTDIR>
中查找 *.vcxproj.user
键的所有值。
例如使用正则表达式
<QTDIR>.*</QTDIR>
并用适当的 Qt 目录替换它们,即:
<QTDIR>C:\\Qt\\Qt5.9.1\\5.9.1\\msvc2017_64</QTDIR>
double
\\
用于正则表达式。如果 没有使用 正则表达式,则编写单个 \
。解决方案 2. 由于其便携性更好
手动设置环境变量
QTDIR
(对于当前用户):> setx QTDIR "C:\Qt\Qt5.9.1\5.9.1\msvc2017_64"
我认为这必须由 Qt 安装程序完成。您可能也喜欢
setx /m
。接下来,您应该 删除 或重命名
<QTDIR>
文件中的所有 *.vcxproj.user
键。或者 删除 这些文件。完成。享受构建项目的乐趣。可能需要重新启动 MS VS。
笔记
*.vcxproj.user
文件不应转移到其他机器/环境,它们属于当前系统配置。因此,将它们从您的存储库中排除,即使用 .gitignore
可能的解决方案 3
使用 Qt Visual Studio 工具 扩展。我没有测试这个。
关于c++ - $QTDIR 指的是 Visual Studio 中的错误目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46547769/