我认为这是一个奇怪的问题。我会尝试尽可能多地提供详细信息。我正在尝试使用以下命令在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/
,到目前为止我只贡献了它。我提到,如果链接或为回购创建的东西可能会发生一些奇怪的事情。我认为在将回购恢复到之前的更新之后可能会出现这个问题,但我不确定我是否只注意到它。
感谢您的帮助!
答案 0 :(得分:3)
我已在项目 - >下包含标题文件的完整路径;属性 - > C / C ++ - >一般 - >附加包含目录。
它应该是detector.h
标头所在的目录路径,而不是文件路径。
检查是否为活动解决方案配置设置了此选项。有时它设置为Debug
,但不适用于Release
和Release
配置无法在这种情况下构建。
答案 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的路径。 如果有人遇到类似的问题,希望这会有所帮助。