使用头文件中发生了未定义对“printStar函数”的引用的错误

home.c

#include <stdio.h>
#include "hf.h"

int main(void)
{
    printf("What's your name?\n");
    printf("My name is %s\n",NAME);
    printStar(5);
    return 0;
}

hf.h

#define NAME "Jeremy Ming"

void printStar(int n);

realize.c

#include <stdio.h>
#include "hf.h"

void printStar(int n)
{
    int i,j;
    
    for(i = 0;i < n;i++)
    {
        for(j = 0;j <= i;j++)
        {
            printf("※"); 
        }
        printf("\n");
    }
}

img

编译指令是人手写的么?链接时把 realize.o 也要带上

看看 Makefile 有木有把 realize.o 也包括

/Users/kazuya/Documents/c
$ gcc -c home.c 
/Users/kazuya/Documents/c
$ gcc -c realize.c 
/Users/kazuya/Documents/c
$ ls -l
total 40
-rw-r--r--  1 kazuya  staff   23 Aug 29 09:18 hf.h
-rw-r--r--  1 kazuya  staff   81 Aug 29 09:18 home.c
-rw-r--r--  1 kazuya  staff  676 Aug 29 09:19 home.o
-rw-r--r--  1 kazuya  staff   81 Aug 29 09:19 realize.c
-rw-r--r--  1 kazuya  staff  764 Aug 29 09:20 realize.o
/Users/kazuya/Documents/c
$ gcc -o home home.o realize.o
/Users/kazuya/Documents/c
$ ./home 
***