【问题标题】:Compiling C++ program, how to properly link to include folder编译 C++ 程序,如何正确链接到包含文件夹
【发布时间】:2015-04-16 06:53:11
【问题描述】:

对于 C++ 项目,我的文件夹结构如下:

  • 生成文件
  • src/main.cpp
  • include/parse.h

我的问题来自编译。在我的 main.cpp 中,我这样做:

#include parse.h

这给了我一个错误,说它找不到“parse.h”。然后我放在那里:

#include include/parse.h

这也不起作用,我猜是因为它正在寻找不存在的 src/include。有没有一种方法可以让我简单地输入#include parse.h 并让它查找该文件夹,或者我应该在该行上放什么以便可以找到它?

编辑:对不起,如果我的问题不清楚。为了澄清,我稍微更改了格式,但基本上,是的,这是一个我不知道如何指定目录的问题。如果所有代码都在一个目录中会很容易,但是由于包含文件夹在包含的同一级别上,我不知道如何指定。

【问题讨论】:

  • 您之所以被否决,可能是因为您的问题不是很清楚。发布一些代码,发布您用于编译的命令,详细说明您的问题到底是什么。我打赌将包含路径指定为编译参数是一个问题,而不是缺少引号。但这就是问题所在,根据您当前的信息,我们只能猜测。 :)
  • 如果您使用的是gcc,您可以在编译程序时使用传递-I./include 标志并使用#include <parse.h> 包含标题。
  • 另请参阅stackoverflow.com/questions/2908057/…,了解有关在 makefile 中指定目录和其他内容的更多信息。但是,如果您的 include 周围没有任何引号或 ,则 AugmentedJacob 的答案是正确的。
  • 我建议的最后一件事是,如果您真的是 C++ 新手,请尝试使用带有 CDT 插件的 Eclipse 或 Visual Studio Community Edition 等 IDE 来学习/开始。这些 IDE 默认自动构建过程,因此您无需立即将编写编译器特定的 makefile 添加到您的学习曲线中。

标签: c++ makefile


【解决方案1】:

语法为#include<HeaderName.h>#include"HeaderName.h"

其中 HeaderName 是您希望添加到程序的目录中的文件的名称。

在您的情况下,您应该使用以下之一。

#include<parse.h>#include"parse.h"

如果您需要访问一个子文件夹,那么您可以使用它

#include "../include/parse.h"

【讨论】:

  • 我真的认为这里的问题不是他忘记在他的包含中加上引号,他可能只是没有正确地写在这里。听起来更像是他在编译器 args 中指定了包含目录之后。
  • @TechnikEmpire 你可能是对的,但让我们看看 Jimmy 将如何引用答案......
  • 是的,我让他给更多的deets
  • 是的@TechnikEmpire 正在等待 OP 回复,因为从他的页面来看,他不是一个 C++ 人。我可能错了。
  • @AugmentedJacob 编辑了更多细节
【解决方案2】:

在您的 main.cpp 中,您需要输入: #include "../include/parse.h"

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2018-10-26
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多