带头文件的C ++出错

时间:2015-12-24 08:13:44

标签: c++ cmake header-files

我对C ++非常陌生,所以请耐心等待。我正在学习学习C ++的教程,我也建议使用Eclipse。我完成了创建头文件并将原型放入其中的要求。但是当我构建我的项目时,我收到了这个奇怪的错误。我在下面的控制台中插入了我的代码,头文件和错误。

#include <iostream>

#include "utils.h"

using namespace std;


int main() {

    doSomething();
    doSomething();

    return 0;
}

void doSomething() {
    cout << "Hello" << endl;
}

接下来是我的头文件,我将其命名为 utils.h

#ifndef UTILS_H_
#define UTILS_H_

void doSomething();

#endif /* UTILS_H_ */

这就是我从控制台获得的内容。我不确定这意味着什么或如何解决这个问题......

  

****构建配置调试项目Headers_and_Prototypes ****

     

全部

     

制作:***没有规则来制作目标&#39; main.o&#39;,需要&#39; Headers_and_Prototypes&#39;。停止。

3 个答案:

答案 0 :(得分:0)

据我所知,你必须为你的标题创建一个.cpp文件,在你的情况下应该只有#include "utils.h",我认为它也应该有void doSomething()。< / p>

答案 1 :(得分:0)

如果我的猜测是正确的,包括utils.h的程序的文件名是main.cpp。在构建时,编译器正在尝试在utils.h或utils.cpp中查找doSomething的定义,并且它无法找到它,因为定义在main.cpp中。

doSomething()的定义应该进入utils.cpp。

答案 2 :(得分:0)

我和其他两个人有同样的看法。除此之外,我建议不要创建一个make文件项目。这有望帮助您解决问题。

总结

1)创建一个blanck项目

2)包含。

的标题

a)预处理器定义并包括必需的。

b)使用extern关键字的函数原型。

c)如果需要,在标题中定义任何用户定义的数据类型。

d)使用#pragma一次只包含一次标题。

3)在cpp文件中提供所有函数的定义以及main。

然后首先构建项目然后运行。