可能重复:
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()
{
}
答案 0 :(得分:0)
如果我在Class2.cpp中包含
#include "Burrito.cpp"
,那么它可以正常工作,但他没有包含它。
很少(我会说永远不会)解决方案。不要#include
在其他源文件中应该是什么源文件。解决方案是编译所有需要编译的文件,让链接器处理链接问题。
你没有编译Burrito.cpp,所以当然你有链接问题。解决方案很简单:编译Burrito.cpp并将Burrito.o添加到您提供给链接器的文件集中。或者,您可以向编译器提供Class2.cpp和Burrito.cpp,创建可执行文件而不是目标文件作为输出。