【问题标题】:How to link C++ source files with Code::Blocks如何将 C++ 源文件与 Code::Blocks 链接
【发布时间】:2012-02-22 23:03:28
【问题描述】:

我知道我做错了什么。我不知道该怎么做 通过头文件将两个.cpp 文件链接在一起。呼唤 方法看不到其他来源。

我使用 Code::Blocks 作为 MinGW 的 IDE。

任何帮助将不胜感激。会更 如果您可以显示固定来源,请在回复中链接到 pastebin 页面。

/***********************************main.cpp***********************************/
#include <iostream>

using namespace std;

#include "test.h"

int main()
{
    printTest();            //can't see printTest, defined in test.cpp
    return 0;
};


/***********************************test.h***********************************/
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED

void printTest();

#endif // TEST_H_INCLUDED


/***********************************test.cpp***********************************/
#include "test.h"

void printTest()
{
    cout << "Hello world!" << endl;
};

【问题讨论】:

  • 你的代码是正确的,你是怎么调用编译器的?您是否已将 test.cpp 添加到您的项目文件中? IDE 需要知道要编译哪些文件。
  • 您如何尝试构建您的程序,您的错误究竟是什么? pastebin 上的代码看起来不错。
  • 欢迎来到 StackOverflow。请编辑您的问题并在此处提供来源。问题应该是独立的,不依赖于外部网站的链接;如果外部站点消失或不可用,问题就变得毫无意义。此外,您不应要求人们离开 SO 以获取信息以尝试帮助您。请阅读FAQ,了解如何在此处提问。谢谢。 :)
  • 如果你不在项目中编译它们,你必须#include主文件(代码块)中的头文件和实现文件。这是对我拒绝使用无意义的项目的回忆,因为它是这样一个简短的 3 文件内容。在#include "test.h" 下方添加行#include "test.cpp"。用 C::B 测试并且可以工作。

标签: c++ linker


【解决方案1】:

您可能会发现this code blocks wiki 很有帮助。看起来代码块使用托管构建系统,因此如果您将文件正确添加到项目中,那么它应该知道编译它并链接到生成的目标文件中。

当你使用“using namespace std;”时,为了更明确地了解其他一些 cmets命名空间仅被纳入 using 语句所在文件的范围内。这就是为什么其他人告诉您明确指定 std:: 命名空间。您还可以将所有 std 命名空间纳入 test.cpp 文件的范围。许多人认为这是一个不好的习惯。通常最好通过

将您需要的内容纳入范围
using std::cout;
using std::endl;

最后,请记住 std::endl 添加新行并刷新缓冲区,在所有情况下它都不是换行符的好替代品。

【讨论】:

    【解决方案2】:

    在 test.cpp 中,将 cout << "Hello world!" << endl; 替换为 std::cout << "Hello world!" << std::endl;

    【讨论】:

      【解决方案3】:

      sanket 的答案对我来说似乎不完整。 您需要在test.cpp 中添加#include &lt;iostream&gt;,以便编译器知道“cout”是什么。

      正如 sanket 所说,您应该在 test.cpp 中使用 std::coutstd::endl

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-23
        • 2011-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        相关资源
        最近更新 更多