[英]Undefined reference to function (linker error)
嗨,我閱讀了有關未定義參考的其他問題和答案。但我仍然無法找出我的代碼有什么問題。 我有一個簡單的鏈表代碼,其中我將整數添加到尾部,然后顯示它們。 這是我的代碼“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
“實現.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 << " ";
}
}
“主.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
toimple::imple()' lmain.cpp:(.text+0x2a): undefined reference imple::addToTail(int)' lmain.cpp:(.text+0x45): undefined reference to
::display()' collect2 的imple::addToTail(int)' lmain.cpp:(.text+0x45): undefined reference to
:ld 返回了1 個退出狀態"
您的回答和建議會有所幫助
簡而言之,您可以使用
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
嘗試使用
g++ main.cpp implementaion.cpp
可能這會有所幫助
您可以使用以下命令創建運行文件:
g++ -o main implementation.cpp main.cpp
並運行它:
./main
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.