3

我对 C++ 真的很陌生,我试图在一个单独的文件中创建一个类,我遇到了一个问题。我基本上从 newboston 逐字复制了教程http://thenewboston.org/watch.php?cat=16&number=15 。但是,因为事情不起作用。尝试运行主文件时出现此错误:

C:\Users\Akavall\Desktop\C++ Stuff\New C++ stuff\class_try.o:class_try.cpp|| undefined reference to `Burrito::Burrito()'|
||=== Build finished: 1 errors, 0 warnings ===|

另外,当我创建课程时。工作区图标是独立的,而它应该(我相信)包括我刚刚创建的类的 .cpp 和 .h 文件夹。

我的猜测是我的路径在某处没有正确设置,但我不知道如何解决这个问题。有什么建议么?

这是我正在使用的代码:

主文件 (class_try.cpp)

#include <iostream>
#include "Burrito.h"

using namespace std;

int main()
{

    Burrito bo;
    return 0;
}

类文件:Burrito.h

#ifndef BURRITO_H
#define BURRITO_H

class Burrito
{
    public:
        Burrito();

};

#endif // BURRITO_H

墨西哥卷饼.cpp

#include "Burrito.h"
#include <iostream>

using namespace std;

Burrito::Burrito()
{
    cout<<"something silly"<<endl;
}

我应该怎么做才能解决这个问题?

先感谢您

编辑:

我正在使用 CodeBlocks,并且我在 32 位 Windows 上。

4

2 回答 2

2

如果您像链接的教程那样使用 MSVC,则需要首先创建一个项目。创建项目后,添加要在其中包含/编译的所有头文件 (.h) 和源文件 (.cpp/.cxx)。现在,MSVC 从这一点开始让这一切变得容易;您可以简单地编译(只要所有内容都正确添加到您的项目中),它会为您编译。

额外信息 下面的信息与这个问题没有直接关系(或者至少看起来不是这样,因为您使用的是 Windows),但如果您愿意,它们旨在帮助您作为开发人员的成长。

但是,如果您决定使用命令行编译器(即 MingW)或在 *nix 环境中工作,请务必注意您需要显式编译每个对象(无需链接;在 gcc/mingw 中,此标志为-c) . 然后在编译几个未链接的对象结束时,将所有对象和主源文件一起编译(这次是链接),它将创建一个可执行文件。

但是,我建议在尝试使用命令行编译器之前,让您熟悉/熟悉通过 IDE 执行此过程。因为无论如何它通常是一个自动化的过程(即大多数开发人员最终都会为这种事情编写 Makefile,实际上)你不会因为不这样做而真正失去太多(立即,无论如何)。这只是你学习时要注意的事情。

于 2012-04-30T14:03:55.130 回答
1

使用命令行编译器你可以试试这个:

g++ class_try.cpp Burrito.cpp -o executable_name

这将链接您的两个 .cpp 文件并创建一个可执行文件,您只需键入即可运行该可执行文件

./executable_name
于 2014-02-02T05:54:47.820 回答