"Fatal error C1083: Cannot open include file" 但我已将目录添加到项目

"Fatal error C1083: Cannot open include file" but I have added directory to project

我觉得这是个奇怪的问题。我会尽力提供尽可能多的细节。我正在尝试在 Visual Studio 2012 测试项目中为自定义 class 导入 header,使用:

#include "detector.h"

我收到错误

fatal error C1083: Cannot open include file: 'detector.h': No such file or directory

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

header 文件很长,但基本上只包含 class 的声明。 detector.cpp 文件包含 class 的定义。我的文件系统上的目录结构如下所示:

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并为class编写和执行测试。我实际上能够包括 three 其他 classes 并为所有三个编写和执行测试,但是四个 classes(包括 detector)是给我同样的错误。

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

感谢您的帮助!

I have included the complete path to the header file under Project -> Properties -> C/C++ -> General -> Additional Include Directories.

应该是detector.hheader所在的目录路径,不是文件路径。

检查您是否已为活动解决方案配置设置此选项。有时它会为 Debug 设置,但不会为 Release 设置,在这种情况下无法构建 Release 配置。

我今天为一个类似的问题挠了挠头~3 个小时。在我的例子中,有一个用于构建二进制文件的构建文件层次结构。我必须将我的头文件目录(在你的情况下为 detector.h)作为目录和项目级别 Makefile 的依赖项。

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.mklibraries.mk

HTH!