【问题标题】:Linking multiple .h files链接多个 .h 文件
【发布时间】:2012-01-01 04:27:27
【问题描述】:

如何使用终端中的 g++ 在 linux 终端中的 .cpp 文件中编译多个 .h 文件。我尝试用一​​个 .cpp 文件编译两个不同的 .h 文件,但没有成功。我怎样才能让它工作?

【问题讨论】:

  • “链接”是什么意思?通常只链接目标文件。
  • 你没有“链接” .h 文件,你 #include 他们。 .h 文件可能会或可能不会在其他 .cpp 文件或库中声明外部类和方法,您需要将其包含在用于创建最终可执行文件的链接/绑定操作中,但这与 .h 文件本身完全不同。
  • 不,这仍然没有意义。发布您的源代码。或者你的命令行不起作用。某物。发布它。
  • “它不起作用”不是很具有描述性。请阅读tinyurl.com/so-hints,然后向我们提供您正在尝试解决的问题的更好描述,以便我们提供帮助。
  • 我假设您在构建程序的链接阶段遇到错误。我只能猜测您已经包含了标题,但没有包含正确的 g++ 标志来链接到与它们一起使用的实际库中。您包括哪些标头(.h 文件)?

标签: c++ g++ header-files


【解决方案1】:
#include "header.h"
#include "other_header.h"

只需#include 他们。我想这就是你所说的链接的意思。

【讨论】:

  • 我使用#include "file1.h" 和#inlcude "file2.h" 将它们都放在了.cpp 文件中,但它仍然不起作用。
  • 你在哪里包括他们?确保在任何函数类之外的最顶层执行此操作。
  • 是的@Sean,有什么具体错误吗?还是标题的内容根本没有加载?
【解决方案2】:

我不知道你所说的“链接”是什么意思。

#include .cpp 文件中的 .h 文件。

【讨论】:

    【解决方案3】:

    对于 .cpp 文件中的两个 .h 文件,您必须有单独的 #include "path-to-file.h"

    【讨论】:

      【解决方案4】:

      您是否偶然使用了某种预编译的标头?如果是这样,您可能需要更新预编译的标头以包含更改。我只有使用带有预编译头文件的 Microsoft Visual Studio 的经验,所以我不确定使用 g++ 的确切方式。

      您的问题很不清楚,而且您的术语表明您对系统并不是很了解。虽然这本身不是问题(我们都曾经是初学者),但您需要格外小心,以真正关注那些试图帮助您的人。在我看来,发布“如何回答”是对那些试图提供帮助的人的侮辱;侮辱是您告诉他们回答问题的要求,但您并没有首先说明您的实际要求。

      【讨论】:

        猜你喜欢
        • 2021-12-28
        • 2023-03-10
        • 2012-04-30
        • 2021-07-27
        • 2020-12-29
        • 2017-03-31
        • 2023-01-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多