您好我读了关于未定义引用的其他问题和答案。但是我仍然无法找出我的代码有什么问题。我有一个简单的链表代码,其中我将整数添加到尾部,之后我显示它们。这是我的代码 “head.h”
#ifndef __HEAD_H_INCLUDE
#define __HEAD_H_INCLUDE
class Node {
int info;
Node *next;
};
class imple {
public:
imple();
void addToTail(int );
void display(void);
private:
Node *head,*tail;
};
#endif
“implementaion.cpp”
#include<iostream>
#include "head.h"
imple::imple(){
head=tail=0;
}
void imple::addToTail(int key){
if(tail==0)
{tail=head=new Node();
info=key;next=0;}
else
{
tail->next=new Node();
info=key;next=0;
tail=tail->next;
}
}
void imple::display(){
Node *temp;
for(temp=head;temp->next !=0;temp=temp->next)
{
std::cout<<temp->info << " ";
}
}
“的main.cpp”
#include<iostream>
#include "head.h"
int main(){
Node node;
imple ab;
for(int i=0;i<5;i++)
ab.addToTail(i);
ab.display();
}
每次编译我都会收到此错误
“/ tmp / cc20Z1ZH.o:在函数main':
lmain.cpp:(.text+0x10): undefined reference to
中执行:: imple()'
lmain.cpp :(。text + 0x2a):未定义引用imple::addToTail(int)'
lmain.cpp:(.text+0x45): undefined reference to
implementation :: display()'
collect2:ld返回1退出状态“
您的回答和建议会有所帮助
答案 0 :(得分:3)
简而言之,您可以使用
g++ main.cpp implementation.cpp -o out
您需要在构建过程中包含implementation.cpp
,并使链接器可以访问函数定义。也就是说,用
g++ -c implementation.cpp -o implementation.o
和
g++ -c main.cpp -o main.o
并将它们与
链接在一起g++ main.o implementation.o -o out
答案 1 :(得分:0)
尝试使用
g++ main.cpp implementaion.cpp
可能这会有所帮助
答案 2 :(得分:0)
您可以使用以下命令创建运行文件:
g++ -o main implementation.cpp main.cpp
并使用:
./main