类未定义的参考

Class undefined reference

本文关键字:参考 未定义      更新时间:2023-10-16

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

这应该是一个简单的问题,但我仍然遇到问题。我查看了类似的问题,但是它们似乎比我想要的要复杂一些。

我正在使用代码:: blocks 10.05。

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

sDesktopthe cool containerTest 1Class2.o:Class2.cpp|| undefined reference to `Burrito::Burrito()'|
||=== Build finished: 1 errors, 0 warnings ===|

我的所有文件都在同一文件夹中。我的对象什么都不做,我只是尝试这个问题,我不应该从另一个类创建对象来获得错误。

是的,这是来自Thenewboston的教程...他能够获得这项工作,因此我应该能够使其正常工作。

如果我在class2.cpp中包含 #include "Burrito.cpp",则可以使用。

他不包括。


----------------------- cpp ---------------------------------------------

#include <iostream>
#include "Burrito.h"
using namespace std;
int main(){
  Burrito Bo;
    return 0;
}

------------------------------------------------------

#ifndef BURRITO_H
#define BURRITO_H

class Burrito
{
    public:
        Burrito();
};
#endif // BURRITO_H
#include "Burrito.h"
#include<iostream>
using namespace std;
Burrito::Burrito()
{
}

如果我在class2.cpp中包含 #include "Burrito.cpp",则它可以工作,但他不包括。

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

您没有编译burrito.cpp,所以您当然会遇到链接问题。解决方案很容易:编译burrito.cpp,然后将burrito.o添加到您提供给链接器的文件集中。另外,您可以将Class2.CPP和Burrito.cpp同时提供给编译器,创建可执行的而不是对象文件作为输出。