IntelliSense 无法打开源文件
IntelliSense cannot open source file
我开始在我的大学担任研究员,并被指示使用内部框架为用 C++ 编写的现有应用程序开发一个组件,该应用程序也是用 C++ 开发的。
目前我正努力在 Visual Studio 2017 年正确设置项目。
每当我尝试从框架中包含一个文件时,IntelliSense 都会抱怨无法打开该文件。
但是,以下情况增加了问题的奇怪程度:
解决方案属性设置正确;该项目确实构建,没有任何投诉。
编写“#include”指令,IntelliSense 确实建议头文件的正确相对路径(即#include <framework/class.h>
)。
我可以使用“打开文档 "class.h"”对话框从引用它的源文件中打开头文件。
我已经遇到过这个:
- Intellisense cannot open source file "*.h"
到目前为止,没有解决我的问题。有人遇到过这个问题吗?
TL;DR
- 编译一切正常。
- "C/C++ -> General -> Additional Include Directories"设置正确。
- "VC++ Directories -> Include Directories" 也已设置。
- 编写 include 指令时,IntelliSense 会正确建议头文件。
- 但是 据报道 IntelliSense 无法打开该文件,因此无法对其编制索引。
- 我受困于花哨但资源匮乏的文本编辑器。
编辑:
我正在使用 MacBook“13 2016;通过 Bootcamp 安装了 Windows 10 Pro 64 位。
出现此问题是因为 Windows 现在可以选择创建文件夹 case-sensitive 并且 intellisense 习惯于更改它尝试打开的文件的大小写。
Intellisense 尝试使用类似 C:\WORKSPACEPATH\PROJECTDIR\MYFILE.cpp 的路径(即全部大写),但如果 C:\workspace(或路径中的任何其他目录)设置为 case-sensitive和不完全匹配,将找不到。
在我的例子中,这是因为我通过 WSL 创建了文件夹,它默认在它创建的任何新目录上启用区分大小写(包括通过 git clone
之类的东西)。参见 here
轻松修复
这可以通过 运行 以下内容解决:
fsutil file setCaseSensitiveInfo <directory> disable
更多命令
您可以通过运行
检查文件夹是否区分大小写
fsutil file queryCaseSensitiveInfo <directory>
最后,一个方便的 one-liner 可以递归地禁用它:
for /r /d %f in (.) do (fsutil file setCaseSensitiveInfo %f disable)
(此信息最初是作为对原始问题的评论发布的,后来发现它实际上是同一个问题。请参阅其他几个人的评论以供输入)
我开始在我的大学担任研究员,并被指示使用内部框架为用 C++ 编写的现有应用程序开发一个组件,该应用程序也是用 C++ 开发的。
目前我正努力在 Visual Studio 2017 年正确设置项目。 每当我尝试从框架中包含一个文件时,IntelliSense 都会抱怨无法打开该文件。
但是,以下情况增加了问题的奇怪程度:
解决方案属性设置正确;该项目确实构建,没有任何投诉。
编写“#include”指令,IntelliSense 确实建议头文件的正确相对路径(即
#include <framework/class.h>
)。我可以使用“打开文档 "class.h"”对话框从引用它的源文件中打开头文件。
我已经遇到过这个:
- Intellisense cannot open source file "*.h"
到目前为止,没有解决我的问题。有人遇到过这个问题吗?
TL;DR
- 编译一切正常。
- "C/C++ -> General -> Additional Include Directories"设置正确。
- "VC++ Directories -> Include Directories" 也已设置。
- 编写 include 指令时,IntelliSense 会正确建议头文件。
- 但是 据报道 IntelliSense 无法打开该文件,因此无法对其编制索引。
- 我受困于花哨但资源匮乏的文本编辑器。
编辑:
我正在使用 MacBook“13 2016;通过 Bootcamp 安装了 Windows 10 Pro 64 位。
出现此问题是因为 Windows 现在可以选择创建文件夹 case-sensitive 并且 intellisense 习惯于更改它尝试打开的文件的大小写。
Intellisense 尝试使用类似 C:\WORKSPACEPATH\PROJECTDIR\MYFILE.cpp 的路径(即全部大写),但如果 C:\workspace(或路径中的任何其他目录)设置为 case-sensitive和不完全匹配,将找不到。
在我的例子中,这是因为我通过 WSL 创建了文件夹,它默认在它创建的任何新目录上启用区分大小写(包括通过 git clone
之类的东西)。参见 here
轻松修复
这可以通过 运行 以下内容解决:
fsutil file setCaseSensitiveInfo <directory> disable
更多命令
您可以通过运行
检查文件夹是否区分大小写fsutil file queryCaseSensitiveInfo <directory>
最后,一个方便的 one-liner 可以递归地禁用它:
for /r /d %f in (.) do (fsutil file setCaseSensitiveInfo %f disable)
(此信息最初是作为对原始问题的评论发布的,后来发现它实际上是同一个问题。请参阅其他几个人的评论以供输入)