clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:

clang: error: linker command failed with exit code 1 (use -v to see invocation) - Undefined symbols for architecture x86_64:

本文关键字:调用 体系结构 未定义 x86 符号 使用 命令 失败 链接 错误 退出      更新时间:2023-10-16

声明CellType有什么问题?这是链表的实现。listHead 是一个新的空链表。由于代码其他部分中的使用列表头,我试图将其声明为全局变量。

#include <iostream>
typedef struct CellType* Position;
typedef int ElementType;
struct CellType{
ElementType value;
Position next;
};
class List{
public:
CellType* listHead;
void makeNull();    //Create a new list
void insertList(ElementType x, Position p); //Insert element to the list
void deleteList(Position p);    //delete an element at position p
Position first();   //get Position of first
Position end();     //get Position of end
Position next(Position p);  //get position of next
void printList();   //print list
};
void List::makeNull(){
listHead = new CellType;
listHead -> next = NULL;
}
void List::insertList(ElementType x, Position p){
Position temp;
temp = p -> next;
p->next = new CellType;
p->value = x;
p->next->next = temp;
}
void List::deleteList(Position p){
p->next = p->next->next;
}
Position List::first(){
return (listHead);
}
Position List::end(){
Position p;
p = listHead;
while(p->next != NULL){
p = p->next;
}
return(p);
}
Position List::next(Position p){
return(p->next);
}

此问题与操作系统版本更新和 g++ 版本有关。我正在使用 MacOS 10.15.5。

再次使用 G++ 编译,然后成功链接。