这是我的 function.c 文件。
int max(int a, int b) {
return a>b? a:b;
}
这是我的 head.h 文件。
#pragma once
extern int max(int a,int b);
这是我的 main.c 文件。
#include <stdio.h>
#include "0703head.h"
int main() {
printf("%d\n", max(10,20));
return 0;
}
这就是问题所在。
ld: Undefined symbols:
_max, referenced from:
_main in 0701main-5801ea.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我不知道如何处理这个错误。
您遇到的错误通常是由于链接问题造成的。编译 main.c 文件时,链接器似乎找不到 max 函数的定义。 确保您正在编译所有必要的文件并将其链接在一起。您需要编译 function.c 和 main.c,然后将它们链接在一起。 你需要
将 function.c 编译为目标文件
gcc -c 函数.c -o 函数.o
将main.c编译成目标文件
gcc -c main.c -o main.o
链接目标文件以创建可执行文件
gcc 函数.o main.o -o my_program
更换
gcc
使用你的编译器命令