【问题标题】:Including C header files from other directory包括来自其他目录的 C 头文件
【发布时间】:2010-11-12 20:02:23
【问题描述】:

我的理解始终是,通过执行#include <header.h>,它会在系统包含目录中查找,而#include "header.h" 它会在本地目录中查找。但我只是在看python源代码,它使用"header.h"方法在同级目录中定义标题。

所以在py3k/Python/ast.c 中是#include "Python.h"。但是Python.hpy3k/Include/Python.h

这是我从未见过的常见的东西吗?没有在任何真正的大型 C 项目中工作过?我如何告诉,至少我的 IDE,去查看py3k/Include

更新
我想出了如何告诉我的 IDE 包含它们,只是我很愚蠢和拼写错误。但我更感兴趣的是为什么"" 有效。这不是""<> 的区别吗?

【问题讨论】:

  • 我们需要知道您使用的是什么 IDE。
  • 任何特定的 IDE,或者我们应该只是猜测?
  • 对于大多数 IDE,在项目设置对话框中有一些包含目录设置,您可以在其中列出您的 py3k/Include 目录。如果不知道您在寻找哪个 IDE,就很难说出精确的设置。
  • 抱歉,它是 Kdevelop,但我想我更感兴趣的是它的工作原理/原因,而不是专门让我的 IDE 看到它们。

标签: c header include


【解决方案1】:

#include <header>#include "header" 都在 “实现定义的地方” 中查找,即它取决于您使用的编译器及其设置。对于#include <h>,它通常是一些标准系统包含目录以及您配置编译器以额外查看的任何内容。
两个版本的区别在于,如果#include "header" 的搜索不受支持或失败,则会重新处理“,就像它读取#include <header>(C99,§6.10. 2).

【讨论】:

  • 正是我想知道的。
【解决方案2】:

您需要以某种方式告诉您的编译器要在哪些目录中搜索——对于 GCC,这意味着使用 -I 标志。查找您的 IDE/编译器组合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2018-01-15
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多