"致命错误C1083:无法打开包含文件"但我已将目录添加到项目中

时间:2016-12-08 23:33:56

标签: c++ visual-studio svn visual-studio-2012

我认为这是一个奇怪的问题。我会尝试尽可能多地提供详细信息。我正在尝试使用以下命令在Visual Studio 2012测试项目中导入自定义类的标头:

#include "detector.h"

我收到了错误

  

致命错误C1083:无法打开包含文件:' detector.h':没有这样的文件或目录

我已在Project -> Properties -> C/C++ -> General -> Additional Include Directories下包含了头文件所在文件夹的完整路径。

头文件很长,但基本上只包含一个类的声明。 detector.cpp文件包含类的定义。我的文件系统上的目录结构如下:

project_directory/
  - test/
    - [my_test_project]
  - detector_directory/
    - detector.h
    - detector.cpp
  - other_component_directory/
    - other_component.h
    - other_component.cpp
  ...

能够#include other_component.h并为该类编写和执行测试。我实际上能够包含三个其他类,并为这三个类编写和执行测试,但是四个类(包括detector)给了我同样的错误。

从SVN存储库中检出整个project_directory/,到目前为止我只贡献了它。我提到,如果链接或为回购创建的东西可能会发生一些奇怪的事情。我认为在将回购恢复到之前的更新之后可能会出现这个问题,但我不确定我是否只注意到它。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

  

我已在项目 - >下包含标题文件的完整路径;属性 - > C / C ++ - >一般 - >附加包含目录。

它应该是detector.h标头所在的目录路径,而不是文件路径。

检查是否为活动解决方案配置设置了此选项。有时它设置为Debug,但不适用于ReleaseRelease配置无法在这种情况下构建。

答案 1 :(得分:1)

我为今天类似的问题挠了头约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的路径。 如果有人遇到类似的问题,希望这会有所帮助。