IntelliSense无法打开源文件

时间:2018-12-17 12:26:41

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

我开始在我的大学担任研究员,受命使用内部框架(也用C ++开发)为用C ++编写的现有应用程序开发组件。

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

但是,以下问题使问题更加奇怪:

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

  • 编写'#include'指令IntelliSense 会提供指向头文件(即#include <framework/class.h>)的正确相对路径。

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

我已经遇到了这个问题:

到目前为止,没有任何事情可以解决我的问题。有人遇到过这个问题吗?

TL; DR

  • 一切都可以编译。
  • “ C / C ++->常规->其他包含目录”设置正确。
  • 还设置了“ VC ++目录->包含目录”。
  • 在编写包含指令时,IntelliSense会正确建议头文件。
  • 但是据报道,IntelliSense无法打开文件,因此未将其编入索引。
  • 我陷入了幻想,但资源匮乏的文本编辑器中。

编辑:

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

1 个答案:

答案 0 :(得分:1)

发生此问题的原因是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)

(此信息最初是作为对原始问题的评论而发布的,后来证明实际上是相同的问题。请参见评论以获取其他人的意见)