如何将C ++源文件与Code :: Blocks链接起来

时间:2012-02-22 23:03:28

标签: c++ linker

我知道,我做错了什么。我无法弄明白该怎么做 通过头文件将两个.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;
};

3 个答案:

答案 0 :(得分:3)

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

当你使用&#34;使用命名空间std时,更加明确其他一些注释;&#34;命名空间仅包含在using语句所在的文件的范围内。这就是为什么其他人告诉你明确指定std :: namespace。您还可以将所有std命名空间放入test.cpp文件中的范围。很多人认为这是一个坏习惯。通常最好通过

将所需内容纳入范围
using std::cout;
using std::endl;

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

正如sanket所说,你应该在std::cout中使用std::endltest.cpp