gpt4 book ai didi

c - 在 2 个 .c 文件之间共享函数

转载 作者:行者123 更新时间:2023-11-30 18:32:48 25 4
gpt4 key购买 nike

dir1 有 dir2、file1.c 和 file1.h。

dir2 有 file2.c

现在,如果我想在 file2.c 中访问 file1.c 中定义的函数,我需要在 file1.h 中声明它并在 file2.c 中包含 file1.h ——这是一个有效的假设吗?

如果不是,请解释。

如果是,即使这样做之后我也会收到“未定义的函数引用”错误。

file2.c:29: undefined reference to `function' collect2: ld returned 1 exit status * Error code 1

最佳答案

编译 C 程序分为两个基本步骤:编译和链接。编译将源代码转换为目标代码,链接将目标代码放在一起,并将所有符号连接在一起。

您的问题是链接器问题,而不是编译器问题。

您可能正在运行以下命令:

gcc dir_2/file2.c

相反,请执行以下操作:

gcc -c dir_2/file2.c
gcc -c file1.c
gcc -o out file1.o file2.o

发生这种情况的原因并不是因为您没有在 header 中声明该函数,或者没有正确包含 header 。当链接器尝试将可执行文件中的所有符号放在一起时,它无法找到您的函数,因为您只链接了程序的一半

关于c - 在 2 个 .c 文件之间共享函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7773778/

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