gpt4 book ai didi

c - 尝试将一个 c 文件链接到另一个时出现错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:31 25 4
gpt4 key购买 nike

我试图分别编译每个 c 文件,然后将它们链接在一起作为一个可执行文件。以下是 2 个 c 文件:

file1.c

#include <stdio.h>

void display();
int count;

int main() {
printf("Inside the function main\n");
count = 10;
display();
}

file2.c

#include <stdio.h>

extern int count;
void display() {
printf("Sunday mornings are beautiful !\n");
printf("%d\n",count);
}

但是当我尝试编译它们时,出现了一些错误:

当我编译file1.c时

gcc file1.c -o file1
/tmp/ccV5kaGA.o: In function `main':
file1.c:(.text+0x20): undefined reference to `display'
collect2: ld returned 1 exit status

当我编译file2.c时

gcc file2.c -o file2
/usr/lib/gcc/i686-redhat-linux/4.6.3/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/cczHziYd.o: In function `display':
file2.c:(.text+0x14): undefined reference to `count'
collect2: ld returned 1 exit status

我犯了什么错误?

最佳答案

您正在分别编译它们,但问题是您还试图分别链接它们。

gcc file1.c file2.c  -o theprogram   # compile and link both files

或:

gcc -c file1.c        # only compiles to file1.o
gcc -c file2.c # only compiles to file2.o

gcc file1.o file2.o -o the program # links them together

关于c - 尝试将一个 c 文件链接到另一个时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13106236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com