我对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
Burrito.cpp
#include "Burrito.h"
#include <iostream>
using namespace std;
Burrito::Burrito()
{
cout<<"something silly"<<endl;
}
我该怎么做才能解决这个问题?
提前感谢
编辑:
我正在使用CodeBlocks,我使用的是32位Windows。
答案 0 :(得分:2)
如果您使用MSVC,就像您链接的教程一样,则需要先创建一个项目。创建项目后,添加要包含/编译的所有头(.h)和源(.cpp / .cxx)文件。现在,MSVC从这一点开始就很容易了;你可以简单地编译(只要一切都正确地添加到你的项目中),它将为你编译东西。
额外信息 以下信息与此问题没有直接关系(或者至少在您使用Windows时似乎不是这样),但如果您需要,它可以帮助您成长为开发人员。
但是,如果您决定使用命令行编译器(即MingW)或在* nix环境中工作,请务必注意您需要显式编译每个对象(无需链接;在gcc / mingw中flag是-c
)。然后在编译几个未链接对象的最后,将所有对象和主源文件一起编译(这次链接),它将创建一个可执行文件。
答案 1 :(得分:1)
使用命令行编译器可以尝试:
g++ class_try.cpp Burrito.cpp -o executable_name
这将链接您的两个.cpp文件并创建一个可执行文件,您只需键入
即可运行该可执行文件./executable_name