Visual studio Visual Studio无法打开包含文件,将从路径中删除字符
我正在使用Microsoft Visual Studio Professional 2017构建一个使用Poco库的项目 背景: 我不知道这是否恰当,但我要说的是,我手动下载并构建了Poco(以及所有其他需要的LIB),多年来一切都很顺利。现在我转而使用Miniconda3来管理我的库,通过安装Poco并更改相关的包含路径Visual studio Visual Studio无法打开包含文件,将从路径中删除字符,visual-studio,visual-c++,visual-studio-2017,poco-libraries,Visual Studio,Visual C++,Visual Studio 2017,Poco Libraries,我正在使用Microsoft Visual Studio Professional 2017构建一个使用Poco库的项目 背景: 我不知道这是否恰当,但我要说的是,我手动下载并构建了Poco(以及所有其他需要的LIB),多年来一切都很顺利。现在我转而使用Miniconda3来管理我的库,通过安装Poco并更改相关的包含路径 $(POCO_DIR)/Foundation/include $(POCO_DIR)/Util/include ... 公正 $(CONDA_LIBS)/include
$(POCO_DIR)/Foundation/include
$(POCO_DIR)/Util/include
...
公正
$(CONDA_LIBS)/include
使用系统变量$(CONDA_LIBS)=D:\CodeLibraries\CONDA_LIBS\Library
。此CONDA_LIBS
目录存在,并包含包含所有Poco头文件和子文件的include/Poco/
子目录
问题:
这个项目进行得很好。我发现了一个链接器错误,在深入研究的过程中,我发现了Visual Studio 2017的一些奇怪行为: 当我使用任何Poco头文件将光标移动到
#include
指令时,例如
#include "Poco/DateTime.h"
我通常可以键入CTRL+SHIFT+G打开并跳转到相关文件。这不再有效了,我得到一个弹出窗口,告诉我 D:\CodeLibraries\conda\u libs\Library\include\oco\atetime.h
无法打开文件 注意
\(p)oco\(D)atetime.h
中缺少的字母。另外,请注意,找到了一个文件,但无法打开
当我尝试在子目录中使用头文件时,如
#include "Poco/JSON/Parser.h"
我明白了
D:\CodeLibraries\conda\u libs\Library\include\oco\son\rser.h无法打开文件 注意
(p)oco\(J)SON\(Pa)rser.h
中缺少的字母“p”、“J”和“Pa”(?!)
其他信息:
- 当我将Poco头文件从Windows资源管理器拖放到Visual Studio(!)
- 我可以从“打开文件”对话框(CTRL+O)打开这些文件
- 我仍然可以使用CTRL+SHIFT+G快捷键在项目中打开我自己的头文件,并打开其他库头文件,如
或boost头文件gdal.h
- 如果我
(注意缺少的字母)并尝试通过CTRL+SHIFT+G打开它,我会收到预期的消息“文件'oco/ateTime.h'未在当前源文件的目录或构建系统路径中找到”,下面列出的路径包括#包含“oco/ateTime.h”
D:\codebraries\conda\u libs\Library/include
问题: 知道为什么Poco头文件的CTRL+SHIFT+G快捷键和拖放操作都失败了吗
编辑:
请注意:
- 我不是问一般的“未找到文件”错误:我通常可以很好地处理include和lib路径,谢谢
- 斜杠和反斜杠至少在过去几年中可以在VisualStudio中互换使用
是的,我可以再次跳转到POCO头文件,方法是将光标移动到
#include
行并按CTRL+SHIFT+G
不知道是重新启动VS修复了这个问题,还是修复了链接器错误——顺便说一句,这是微不足道的,我甚至可能在写这个问题的时候做过。不幸的是,在链接器修复后,我没有重新检查IntelliSense行为是否损坏,或者没有记录IntelliSense在修复后仍然损坏。所以:恐怕没有真正的结束
编辑:建议一种解决方法是删除IntelliSense DB文件并重新启动VS以强制重新分析项目。下次我会试试。您确定没有第三方扩展扰乱Visual Studio设置吗?您是否也尝试过\,not/?“项目编译良好。我有一个链接器错误”,是否可以使用链接器错误更新帖子?当您混合使用不同版本的库(dll、lib或对象文件)和/或其相应的头文件时,会发生链接器错误。这种情况通常发生在您只引用最新的头而不引用最新的lib时,反之亦然。请确保您正在链接到您配置的POCO的确切版本