Visual Studio无法识别我的包含文件

15

这可能是一个非常简单的问题,但我还没有能够弄清楚,所以任何帮助都将不胜感激。

我有一个位于通用文件夹中的头文件,因为我想在几个项目中使用它,例如:

C:\user\geninclude\program\header.h

我创建了一个非常简单的主程序的新空项目,在主程序中我添加了:

#include <program/header.h>

接着,我进入了项目属性,在VC++的包含目录中添加了C:\user\geninclude\。

但是当我尝试构建程序时,程序告诉我无法找到header.h,因为它不在当前目录或构建系统路径中。

我还尝试在项目属性中的C/C++常规附加包含目录中添加C:\user\geninclude\,但仍然出现相同的错误。

我知道有些简单的东西我可能遗漏了,但我不知道是什么,我很新手,正在学习。

参考一下,我使用的是Visual Studio 2013。

提前感谢您的帮助。

更新:非常感谢大家的回复,我尝试了你们告诉我的所有事情(在两个示例中检查发布与调试,将/更改为\和<>更改为"",并仔细检查头文件),但系统仍然看不到它。这真的非常奇怪。我会继续努力...


2
作为注意事项,对于系统文件使用<>,例如#include <string.h>,对于非系统文件使用引号,例如#include "program\header.h"。这样可以稍微更快地找到文件。 - Keith M
5个回答

12
请检查一下你的文件是否真的是头文件,否则它将不会出现在include中。
另外一个方法(如果你需要快速解决问题),是将你的头文件(或者头文件所在的文件夹)放到Visual Studio的“include”文件夹中。路径应该类似于这样:“C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include”。
PS:当你添加VC++包含目录的路径时,你也应该检查属性配置。你可能会将路径添加到调试配置中,而尝试在发布模式下运行它。

11
啊,我的问题出在调试版和发布版上。谢谢! - Jiminion
4
请将您的头文件放置在 Visual Studio 的 "include" 文件夹中 Microsoft Visual Studio 14.0\VC\include。这是一种解决方法,但会产生副作用:每个其他项目都会看到这些新文件。在不久的将来,您可能已经忘记了您这样做了。不推荐使用此方法。Keith-m 提供的解决方案更好。 - Sandburg

8

您确实想要

项目属性 -> 配置属性 -> C/C++ -> 附加包含目录

(或类似的东西; 我正在使用VS 2008)。 确保您在左上角编辑的配置(调试/发布)与您正在构建的配置(通常在主窗口顶部可见)相匹配。 因此,听起来您可能已经正确执行,我会再次检查该位置中是否存在文件。您也可以尝试使用program\header.h而不是program/header.h。 如果这些方法都不起作用,请将C:\user\geninclude\program添加到包含目录中(末尾不要有\),并将其更改为 #include "header.h"。 如果这也不起作用,那么您几乎肯定将头文件放在了错误的位置。


5
请确保您正在编辑的配置(调试/发布)与您正在构建的配置相匹配(通常在主窗口顶部可见)。哇,真不敢相信这是我遇到问题的原因。感谢您指出来。 - Ray Hulha

2
另一个可能导致包含文件未被检索到的原因是您c++项目属性页面中设置的平台与配置管理器中的“活动解决方案平台”之间的差异。您可以检查一下它们是否分别设置为x64和x86。enter image description here

同时观看发布版和调试版。 - Technophile

0

检查您是否正确指定了路径。例如,我曾经写成了cpp而不是c++,因此浪费了很多时间在这里和那里搜索。


0

针对Visual Studio 2019用户:

  1. 项目(P) > 你的项目名称 属性(P) > 平台工具集 Visual Studio 2019(V###)

    原因:你可能从在线下载了该项目,但他们使用了其他版本的Visual Studio作为平台。

  2. 项目(P) > 你的项目名称 属性(P) > Windows SDK 版本##.#(最新安装版本)

    原因:你可能从在线下载了该项目,但他们使用了版本为SDK 8.0,而你有SDK 10.0

ntucvhw


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接