【问题标题】:Error in C++ with header file [duplicate]带有头文件的 C++ 中的错误 [重复]
【发布时间】:2016-03-30 16:51:24
【问题描述】:

我对 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 构建配置调试 ****

全部搞定

make: *** 没有规则来制作“Headers_and_Prototypes”需要的目标“main.o”。停下来。

【问题讨论】:

  • 这不是C++问题,而是Eclipse配置问题。
  • 尝试使用另一个 C++ IDE,例如 Code::Blocks,幸运的是问题不会出现。希望。
  • 如果您是 Windows 新手,那么最好使用 Visual Studio 进行 c++ 开发。有一个免费的社区版。
  • John,文件名是否包含主名称 utils.cpp?在 C++ 中声明和定义方法应该有相同的文件名。例如,对于标头 utils.h 中的方法 doSomething(),void doSomething(){} 应该在标头本身或 utils.cpp

标签: c++ cmake header-files


【解决方案1】:

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

【讨论】:

  • 这不是问题。
【解决方案2】:

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

doSomething() 的定义应该放在 utils.cpp 中。

【讨论】:

  • 没有。 Make 知道它需要 main.o,但不知道如何创建它。最有可能的是,它需要被告知构建 main.cpp 来创建它。
【解决方案3】:

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

夏天

1)创建一个空白项目

2) 包含的标题。

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

b) 带有 extern 关键字的函数原型。

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2020-10-29
    相关资源
    最近更新 更多