gpt4 book ai didi

c - APUE.H Linux C 编程错误

转载 作者:行者123 更新时间:2023-11-30 18:51:39 33 4
gpt4 key购买 nike

我正在尝试执行以下程序-在 APUE.3E -> filedir -> filetype.c 中(这是我下载 APUE.3E 时默认出现的。我没有进行任何更改)

但是当我编译时,这是我收到的错误:

myramya~/Documents/apue.3e/filedir$ gcc filetype.c -lm -o 文件类型
/tmp/cchPKE7K.o:在 main 函数中:
filetype.c:(.text+0x94): 对 err_ret' 的 undefined reference
收集2:错误:ld返回1退出状态

我使用的是 Linux Ubuntu。我已在 Documents 文件夹中安装了 APUE.3E。我有管理员权限。我编写了一个简单的 Hello.c 程序并使用以下命令执行:

$ gcc hello.c -o 你好

并且没有任何问题。

最佳答案

您的 hello 示例可以使用 gcc 一步进行编译,因为它不会调用其他文件中的任何函数(除了始终链接到的标准 C 库中的函数)。

您的 filetype.c 调用了函数 err_ret,该函数不在 filetype.c 中,而是在其他源文件中。

当编译较大的程序时,工作通常分两步完成:首先,通过对每个源文件使用标志 -c 调用 gcc,将源文件编译成目标文件。然后,通过对所有目标文件的 gcc 的一次调用,将所有目标文件链接在一起。还可以将目标文件一起放入库中。通常 Makefile 用于编译更大的项目。

这里很好地解释了您与 apue.3e 的具体情况:https://unix.stackexchange.com/questions/105483/compiling-code-from-apue

关于c - APUE.H Linux C 编程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383182/

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