Visual Studio忽略包含目录

6
我正在使用Visual Studio Community 2017和Windows 10。我有一个项目,在Project > Configuration Properties > VC++ Directories > Include Directories下添加了一个包含文件目录,但是Visual Studio会忽略该目录并无法找到包含的文件。如果我在#include语句中硬编码目录,它可以找到这些文件。我检查了.vcxproj文件,目录也显示在那里。我刚刚更新/更正了Visual Studio到最新版本,并重新启动,但问题仍然存在。请帮助解决!

这很可能是你设置某些东西的方式出了问题。你确定你正在编译你已经修改的正确配置吗? - Tas
我已经十年左右没有使用VS进行C++编程了,现在又回来了,结果发现这个问题仍然存在!?是的,我也一样:路径在x64中已正确配置。我甚至尝试从win32中复制它(在那里它可以工作),但是VS声称它不存在。 - fishbone
2个回答

3

解决此类问题的其他想法:

在使用vs2015时,您可以尝试在任何 .c/.cpp 文件顶部添加 '#include <somenoneexistingfile.h>',然后右键单击它以打开上下文菜单,并选择“打开文档 <somenoneexistingfile.h>”。这将打开一个对话框,显示包含所使用的实际路径。注意:此特定方法不适用于vs2019或更高版本。

除此之外,您还可以检查以下内容:

  1. 您是否编辑了要启动的实际配置(Debug/Release),即可能只编辑了调试构建的附加包含路径,但正在尝试编译发布构建。
  2. 您是否编辑了要启动的实际平台(x64 vs x86),即可能只为x86配置了附加包含路径,但正在尝试编译x64平台。

在哪个版本的Visual Studio中可以显示实际路径?在Visual Studio 2022中,无用的消息为: [Microsoft Visual Studio] File 'notme' not found in current source file's directory or in build system paths. [ OK ] - Warren P
尝试在 VS2019 中操作,确实不能用了。写这篇文章的时候,我想我是在 VS2015 中尝试的,我会更新以反映这个变化。 - kalmiya
我遇到了完全相同的问题,你的第二个解决方案帮助我解决了。我的配置是在x64下进行的,但我正在构建x86。这让我疯狂,我没有意识到为什么找不到头文件。非常感谢你。 - Eyal Gerber

1
首先,请确保在项目属性的“配置属性”>“常规”中启用了MFC,使用MFC必须设置为静态或动态库。然后,为确保cl.exe使用您指定的所有包含目录,您需要转到项目属性> c / c ++>常规,并将抑制启动横幅更改为no / nologo。这将为每个源文件提供完整的cl命令,显示Visual Studio尝试对代码和配置选项进行的确切操作。

感谢您的帮助。我正在开发一个简单的控制台应用程序(.exe),它已经运行了多年,只需要进行一些小的调整。它不使用MFC,并且/nologo已经设置好了。我尝试创建一个全新的项目,而不是使用从Visual Studio 2015移植过来的项目(这个项目工作得很好,但我已经删除了VS2015)。结果发现,当指定函数库路径时,我遇到了相同的问题——目录被忽略了。 - Randy Stubbings
2
作为进一步的更新,我创建了一个默认的控制台应用程序,然后更改了属性> VC++目录>包含目录,将“H:\Test”包含在$(IncludePath)之前。我没有做其他的更改。如果我#include "H:\Test\myheader.h",它可以工作;#include "myheader.h"则不行。这将是一个简单的修复,除了有许多链接的头文件。 - Randy Stubbings

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