未定义的函数引用(链接器错误)

Undefined reference to function (linker error)

您好,我阅读了有关未定义的其他问题和答案reference.But,但我仍然无法找出我的代码有什么问题。我有一个简单的链表代码,其中我将整数添加到尾部,然后显示它们。这是我的代码 "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 toimple::imple()' lmain.cpp:(.text+0x2a): 对 imple::addToTail(int)' lmain.cpp:(.text+0x45): undefined reference toimple::display()' 的未定义引用 collect2: ld 返回了 1 个退出状态

您的回答和建议将很有帮助

尝试使用

g++ main.cpp implementaion.cpp

这可能会有所帮助

简而言之,你可以使用

g++ main.cpp implementation.cpp -o out

您需要在构建过程中包含 implementation.cpp 并使 link 用户可以访问函数定义。即用

编译
g++ -c implementation.cpp -o implementation.o

g++ -c main.cpp -o main.o

和link他们连同

g++ main.o implementation.o -o out

您可以创建一个 运行 文件:

g++ -o main implementation.cpp main.cpp

和 运行 它与 :

./main