ld:Undefined symbols:in C [已关闭]

gojuced7  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(79)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

18天前关门了。
Improve this question
这是我的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)


我不知道如何处理这个错误。

kwvwclae

kwvwclae1#

您遇到的错误通常是由于链接问题而发生的。在编译main.c文件时,链接器似乎找不到max函数的定义。请确保您正在编译并链接所有必要的文件。您可以编译function.c和main.c,然后将它们链接在一起。

  • 将function.c编译为目标文件
    gcc -c function. c-o function.o
  • 将main.c编译为目标文件
    gcc -c main.c -o main.o
  • 链接目标文件以创建可执行文件
    gcc function.o main.o -o my_program

更换

gcc

字符串
使用编译器命令

相关问题