【问题标题】:Visual Studio ignoring include directoriesVisual Studio 忽略包含目录
【发布时间】:2018-05-05 18:17:50
【问题描述】:

我正在运行 Visual Studio Community 2017 和 Windows 10。我有一个项目,我在项目 > 配置属性 > VC++ 目录 > 包含目录下添加了一个包含文件目录,但 Visual Studio 只是忽略该目录并且不会找到包含文件。如果我将目录硬编码到#include 语句中,它会找到文件。我检查了 .vcxproj 文件,目录显示在那里。我刚刚将 Visual Studio 更新/更正为最新版本,并且已经重新启动,但问题仍然存在。请帮忙!

【问题讨论】:

  • 这肯定是您设置方式的问题。您确定您正在以您更改的正确配置进行编译吗?
  • 大约 10 年或更长时间后,我回到了使用 VS 进行 C++ 编程,只是为了意识到这个问题仍然存在!?是的,这里也一样:路径在 x64 中配置正确。我什至试图从win32(它工作的地方)复制它,但VS声称它不存在。

标签: c++ visual-studio


【解决方案1】:

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

【讨论】:

  • 感谢您的帮助。我正在处理的项目是一个简单的控制台应用程序 (.exe),它已经工作了多年,只需要一个小调整。它不使用 MFC 并且已设置 /nologo。我尝试创建一个全新的项目,而不是使用从 Visual Studio 2015 移植的项目(效果很好,但我删除了 VS2015)。事实证明,在指定函数库的路径时,我也遇到了同样的问题——目录被忽略。
  • 作为进一步的更新,我创建了一个默认控制台应用程序,然后更改了“属性”>“VC++ 目录”>“包含目录”以在 $(IncludePath) 之前包含“H:\Test”。我没有做其他更改。如果我 #include "H:\Test\myheader.h" 它可以工作; #include "myheader.h" 没有。这将是一个简单的修复,除了有许多链接的标题。
【解决方案2】:

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

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

除此之外,您可以检查是否:

  1. 您编辑了您正在启动的实际配置(调试/发布),即您可能只编辑了调试构建的附加包含路径,但正在尝试编译发布构建。
  2. 您编辑了您正在启动的实际平台(x64 与 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。 [好的]
  • 用vs2019试过了,确实不行了。在撰写本文时,我想我尝试过使用 vs2015,将更新以反映该更改。
猜你喜欢
  • 2015-07-31
  • 2013-06-30
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 2015-03-22
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多