1

可能重复:
什么是未定义的引用/未解决的外部符号错误,我该如何解决?

这应该是一个简单的问题,但我仍然有问题。我看过类似的问题,但它们似乎比我要找的要复杂一些。

我正在使用 Code::Blocks 10.05。

我收到了对我的类文件的未定义引用。我知道这是一个链接器错误,但我不确定如何修复它。我很害怕我对链接文件不太了解。

s\Desktop\the cool container\Test 1\Class2.o:Class2.cpp|| undefined reference to `Burrito::Burrito()'|
||=== Build finished: 1 errors, 0 warnings ===|

我所有的文件都在同一个文件夹中。我的对象什么都不做,我只是在尝试,我不应该因为从另一个类创建对象而出错。

是的,这是来自 TheNewBoston 的教程......他能够完成这项工作,所以我应该能够让它工作。

如果我包含#include "Burrito.cpp"在 Class2.cpp 中,那么它可以工作,但他没有包含。


------------Class2.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()
{

}
4

1 回答 1

0

如果我包含#include "Burrito.cpp"在 Class2.cpp 中,那么它可以工作,但他没有包含。

这很少(我会说永远不会)解决方案。不要#include在其他源文件中应该是源文件。解决方案是编译所有需要编译的文件,让链接器处理链接问题。

你没有编译 Burrito.cpp,所以你当然有链接问题。解决方案很简单:编译 Burrito.cpp 并将 Burrito.o 添加到您提供给链接器的文件集中。或者,您可以将 Class2.cpp 和 Burrito.cpp 都提供给编译器,创建一个可执行文件而不是目标文件作为输出。

于 2012-10-24T15:27:43.580 回答