gpt4 book ai didi

c - 最小 C 程序中对 "main"的 undefined reference

转载 作者:太空狗 更新时间:2023-10-29 16:44:24 26 4
gpt4 key购买 nike

我试图更深入地理解 C 编译,所以我正在“手动”编译和链接。这是我的代码

int main()
{
return 0;
}

这是我在控制台 (Windows) 中输入的内容:

gcc -S main.c
as main.s -o main.o
ld main.o

尝试链接时,我得到:

main.o:main.c:(text+0x7): undefined reference to `__main'

最佳答案

您没有链接任何必要的支持库。 stdin、stdout、stderr 等 C 全局对象不会凭空出现。命令参数和环境变量是从操作系统中提取的。在退出时,所有这些 atexit() 函数都会被调用,并且来自 main 的返回码被传递给 exit(return_code)。等等

查看命令 gcc -dumpspecsgcc -print-libgcc-file-name。查看该目录中的所有其他库。您会发现在 dumpspecs 的输出中引用了很多这样的库和目标文件。我不确切知道这些规范规则何时或如何被解释,但你可能会明白。我认为 GCC 信息页面 info gcc 会详细解释它,如果你深入研究的话。

info gcc 然后按 'g' 然后输入 'Spec Files'

正如 Jonathan Leffler 所说,快捷方式是使用详细选项运行 gcc:gcc -v 并查看它使用了哪些命令。

关于c - 最小 C 程序中对 "main"的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39134415/

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