C++ &引用;致命错误C1083:无法打开包含文件";但我已将目录添加到项目中
我认为这是一个奇怪的问题。我将尽可能多地提供细节。我正在尝试使用以下命令导入Visual Studio 2012测试项目中自定义类的标题:C++ &引用;致命错误C1083:无法打开包含文件";但我已将目录添加到项目中,c++,visual-studio,svn,visual-studio-2012,C++,Visual Studio,Svn,Visual Studio 2012,我认为这是一个奇怪的问题。我将尽可能多地提供细节。我正在尝试使用以下命令导入Visual Studio 2012测试项目中自定义类的标题: #include "detector.h" 我得到了错误 致命错误C1083:无法打开包含文件:“detector.h”:没有此类文件或目录 我已经在Project->Properties->C/C++->General->additionalinclude目录下包含了头文件所在文件夹的完整路径 头文件相当长,但基本上只包含类的声明。detector.cp
#include "detector.h"
我得到了错误
致命错误C1083:无法打开包含文件:“detector.h”:没有此类文件或目录
我已经在Project->Properties->C/C++->General->additionalinclude目录下包含了头文件所在文件夹的完整路径
头文件相当长,但基本上只包含类的声明。detector.cpp
文件包含类的定义。我的文件系统上的目录结构如下所示:
project_directory/
- test/
- [my_test_project]
- detector_directory/
- detector.h
- detector.cpp
- other_component_directory/
- other_component.h
- other_component.cpp
...
我能够#包括其他_组件.h
,并为该类编写和执行测试。实际上,我可以包括其他三个类,并为所有三个类编写和执行测试,但有四个类(包括检测器
)给了我同样的错误
整个project\u目录/
都是从一个SVN存储库中签出的,到目前为止只有我参与了这个存储库。我提到,万一回购协议中的链接或其他东西出现了一些奇怪的情况。我认为这个问题可能是在将回购恢复到以前的更新后出现的,但我不确定我当时是否注意到了它
谢谢你的帮助
我已经在Project->Properties->C/C++->General->Additional Include目录下包含了头文件的完整路径
它应该是detector.h
头所在的目录路径,而不是文件路径
检查您是否已为活动解决方案配置设置此选项。有时它设置为Debug
,但不设置为Release
,并且Release
配置在这种情况下无法构建。今天我为类似的问题挠头了约3个小时。在我的例子中,有一个用于构建二进制文件的构建文件层次结构。我必须在目录和项目级Makefile中包含头文件的目录(detector.h
)
project_directory/
- **libraries.mk**
- test/
- [my_test_project]
- detector_directory/
- **build.mk**
- detector.h
- detector.cpp
- other_component_directory/
- other_component.h
- other_component.cpp
我必须将路径添加到build.mk
和libraries.mk
嗯 可能会有一些奇怪的链接发生,你可能必须检查自己的一个。确保detector.h
存在于您期望的文件夹中,并确保您可以在Visual Studio中打开并读取它。@drescherjm我可以在VS中打开并读取它。我可以将它添加到项目中,尽管我认为这只是引用它,而不是复制它。如何检查它是否作为实际文件存在,而不是Windows中的某个虚拟链接或其他内容?我知道如何在*nix操作系统上…1)您的MSVC解决方案中只有一个项目还是几个项目?您需要在每个项目中添加include目录。2) 在编译哪个cpp文件的过程中会发生错误?您可以单独编译cpp文件,以确定是否适用于所有cpp文件。@Engineero这是一个预编译的头文件,根据我的经验,它导致的问题比解决的问题多。您可以在项目的属性下禁用它,然后“配置属性\C/C++\Precompiled Headers”。@Engineero很高兴听到您可以解决它:-)@Engineero在项目属性页的顶部可以看到可用的配置。选择您需要构建的配置调试、发布和平台,并检查选项,例如附加包含目录
是否正确配置。还要检查此目录的路径长度是否小于256个符号。我添加了detector.h
所在的文件夹,而不是文件的路径。我已经在我的问题陈述中解决了这个问题。看起来问题在于我为哪个配置设置了选项。谢谢