类未定义的引用

时间:2012-10-24 15:19:21

标签: c++ class reference codeblocks linker-warning

  

可能重复:
  What is an undefined reference/unresolved external symbol error and how do I fix it?

这应该是一个简单的问题,但我仍然遇到问题。我看过类似的问题,但它们看起来比我正在寻找的要复杂得多。

我正在使用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教程......他能够得到这项工作,所以我应该能够让它运作起来。

如果我在Class2.cpp中包含#include "Burrito.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()
{

}

1 个答案:

答案 0 :(得分:0)

  

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

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

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

相关问题