【问题标题】:Microsoft Visual Studio doesn't resolve #include <file.h> but it does when used quotes [duplicate]Microsoft Visual Studio 无法解析 #include <file.h> 但在使用引号时会解析 [重复]
【发布时间】:2021-05-26 19:02:42
【问题描述】:

我正在尝试将一些 .h 和 .c 文件添加到 C++ 项目中。但是,该库使用&lt;&gt; 而不是"" 调用头文件。 Microsoft Visual Studio 2015 告诉我它无法打开头文件。当切换到"" 时,它可以打开它。 我不想浏览 100 个文件并将 &lt;&gt; 更改为 ""

有没有办法解决这个问题?

【问题讨论】:

  • 编译器的行为可能与您可能知道的其他编译器不同。为包含文件的文件夹添加路径:docs.microsoft.com/en-us/cpp/build/reference/…
  • 这意味着您的INCLUDE 路径错误。还有,你为什么用VC2015?
  • @Dai 在某种程度上,但是这些文件不是系统级文件。它们在同一条路径内。那么我真的必须手动翻阅一堆文件吗?
  • @Dai 是的,这个问题并不新鲜。但引用的答案可能会错过视觉工作室环境。
  • 如果它们在您的项目中,您应该使用引号。如果它们是您应该使用的系统 但是我相信搜索方法取决于实现

标签: c++ visual-studio


【解决方案1】:

使用include引用头文件时," "&lt; &gt;的区别:

  1. " ":引用非标准库的头文件,编译器首先在程序源文件所在目录中查找。如果没有找到就去系统默认目录查找,一般用来引用用户自定义的头文件。

  2. &lt; &gt;:只搜索系统默认目录或尖括号中的路径。通常用于引用标准库自带的头文件。

综上,标准库自带的头文件可以使用" "或者&lt; &gt;,但是我们习惯使用&lt; &gt;,用户自定义的头文件只能使用" "

但是,您可以在Properties-&gt;VC++ Directories-&gt;Include Directories 中添加file.h 所在的目录路径。

一般情况下," "用于自写,&lt; &gt;用于第三方库或系统库的头文件。

【讨论】:

    【解决方案2】:

    当您使用&lt;&gt; 时,编译器仅在标准库中搜索头文件。

    而且,当您使用"" 时,编译器会在您的项目目录中搜索头文件。

    假设file.h是你创建的头文件并存在于你的项目目录中,编译器只有在你使用#include "file.h"时才能找到头文件

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多