Xcode 多文件问题

我是在Xcode中操作的,在main.c的基础上又建立了linklist的C文件和头文件。不知为什么会报错

img

/
//  linklist.h

#pragma once
#ifndef linklist_h
#define linklist_h

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#endif /* linklist_h */

struct Linknode
{
    int num;
    struct Linknode * next;
};

//初始化链表
struct Linknode *initLinkList(void);
//遍历链表
void foreach_LinkList(struct Linknode *pHeader);

//
//  linklist.c

#include "linklist.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//初始化链表
struct Linknode *initlinklist(void)
{
    //创建头节点
    struct Linknode* pHeader=malloc(sizeof(struct Linknode));
    if(pHeader==NULL)
    {
        return NULL;
    }
    pHeader->next=NULL;
    //建立指向尾节点的指针,新节点出现后利用指针给为尾节点的next赋值
    struct Linknode *pTail=pHeader;
    int val=-1;
    while(1)
    {
        printf("请初始化数据,若退出则按-1");
        scanf("%d",&val);
        if(val==-1)
        {
            break;
        }
        struct Linknode *newNode=malloc(sizeof(struct Linknode));
        newNode->num=val;
        newNode->next=NULL;
        //利用指针给尾节点的next赋值
        pTail->next=newNode;
        //移动尾节点
        pTail=newNode;
    }
    return pHeader;
}

void foreach_LinkList(struct Linknode *pHeader)
{
    if(pHeader==NULL){
        return;
    }
    struct Linknode*pCurrent=pHeader->next;
    while(pCurrent !=NULL)
    {
        printf("%d",pCurrent->num);
        pCurrent=pCurrent->next;
    }
}

//
//  main.c

#include "linklist.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void test(void)
{
    //初始化链表
    struct Linknode *pHeader=initLinkList();
    //遍历链表
    printf("遍历列表的结果为:\n");
    foreach_LinkList(pHeader);
    
}
int main(int argc, const char * argv[]) {
    test();
    return 0;
}

我也遇到了一摸一样的问题,笔者现在解决了吗