gpt4 book ai didi

使用头文件编译

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:55 26 4
gpt4 key购买 nike

用以下代码编译文件 main.c:

gcc main1.c -o final

给我:

/tmp/cc1cwhAP.o: In function `main':
main1.c:(.text+0xb): undefined reference to `hi'
main1.c:(.text+0x15): undefined reference to `hi'
collect2: ld returned 1 exit status

ma​​in1.c:

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

int main(void)
{
hi = 1;
printf("hi = %d",hi);
return(0);
}

包括.h:

extern int hi;

我做错了什么? (请详细回答你的问题)

删除 extern 关键字可以解决问题,但我希望能够在其他源文件中使用 hi 变量。

最佳答案

您已经告诉编译器存在一个名为hi 的变量,但您实际上并没有定义它。

有两种方法可以解决这个问题:

  1. 在头文件的声明中删除 extern 关键字。这不好!
  2. 在源文件中声明变量。这可以是您链接到程序中的 main1.c 或另一个源文件。这是个好方法。

关于使用头文件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976490/

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