我刚遇到一个问题,又花了几个小时。
我有一个依赖于 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/

10-09 03:39