c++ - IntelliSense 无法打开源文件

标签 c++ visual-studio visual-c++ visual-studio-2017 intellisense

我开始在我的大学担任研究员,并被指示使用内部框架为一个已经存在的用 C++ 编写的应用程序开发一个组件,该应用程序也是用 C++ 开发的。

目前我正在努力在 Visual Studio 2017 中正确设置项目。 每当我尝试从框架中包含文件时,IntelliSense 都会提示无法打开该文件。

但是,以下事情增加了问题的奇怪程度:

  • 解决方案属性设置正确;该项目确实构建,没有任何投诉。

  • 编写“#include”指令时,IntelliSense 确实建议头文件的正确相对路径(即 #include <framework/class.h> )。

  • 我可以使用“打开文档“class.h””对话框从引用它的源文件中打开头文件。

我已经遇到过这个:

到目前为止,没有解决我的问题。有人遇到过这个问题吗?

长话短说

  • 编译一切正常。
  • “C/C++ -> General -> Additional Include Directories”设置正确。
  • “VC++ 目录 -> 包含目录”也已设置。
  • 在编写 include 指令时,IntelliSense 会正确建议头文件。
  • 但是 据报道,IntelliSense 无法打开该文件,因此无法对其编制索引。
  • 我受困于花哨但资源匮乏的文本编辑器。

编辑:

我正在使用 MacBook“13 2016;通过 Bootcamp 安装了 Windows 10 Pro 64 位。

最佳答案

出现此问题是因为 Windows 现在可以选择使文件夹区分大小写,而 intellisense 习惯于更改它尝试打开的文件的大小写。

Intellisense 尝试使用类似 C:\WORKSPACEPATH\PROJECTDIR\MYFILE.cpp 的路径(即全部大写),但如果 C:\workspace(或路径中的任何其他目录)设置为区分大小写并且不完全匹配,将找不到。

在我的例子中,这是因为我通过 WSL 创建了文件夹,默认情况下它在它创建的任何新目录上启用了区分大小写(包括通过 git clone 之类的东西)。参见 here

轻松修复

这可以通过运行以下命令来解决:

fsutil file setCaseSensitiveInfo <directory> disable

更多命令

您可以通过运行来检查文件夹是否启用了区分大小写

fsutil file queryCaseSensitiveInfo <directory>

最后,一个方便的单行代码可以递归地禁用它:

for /r /d %f in (.) do (fsutil file setCaseSensitiveInfo %f disable)

(此信息最初是作为对原始问题的评论发布的,后来发现它实际上是同一个问题。请参阅其他几个人的评论以获取输入)

关于c++ - IntelliSense 无法打开源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53815234/

相关文章:

c++ - 在 C++ 中返回字符串的最佳方法是什么?

visual-studio - 如何让 Visual Studio Team Foundation Server 看到我将代码移动到不同的文件夹?

c++ - 来自 MSVC extern "C"的故事

c++ - 如何用固定元素直接初始化unordered_map?

C++ 相当于 python 的 itertools::cycle

c++ - 如何使用 new 在堆上创建一个自动数组 [N]

c# - 如何从 VS2015 中引用不同的 mscorlib.dll?

c# - NuGet:无法安装包 VVVV.EmguCV 2.4.2.1

c++ - C++从文件中获取父目录

c++ - 计算字符数组中一行中的字符数