我试图用 C 语言进行编程,但是当我尝试编译“HelloWorld”来运行时,我得到一个 (.text+0x1b): undefined reference to `main' 错误。编辑:我正在使用 wsl。
Ubuntu 窗口:
dodojesu@DumbshitsINC:\~$ dir
hello.c hello.c.save
dodojesu@DumbshitsINC:\~$ gcc hello.c -o hello
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o: in function \`\_start':
(.text+0x1b): undefined reference to \`main'
collect2: error: ld returned 1 exit status
dodojesu@DumbshitsINC:\~$
这是 hello world 文件:
#include <stdio.h>
int main() {
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
我已经尝试使用 MS 教程等来修复它,但我发现的任何内容都不能解决这个问题
编辑:
dodojesu@DumbshitsINC:~$ gcc --version
gcc(Ubuntu 13.2.0-23ubuntu4)13.2.0
版权所有 (C) 2023 Free Software Foundation, Inc.
这是免费软件;请参阅复制条件的来源。 没有
保修;甚至不是为了适销性或特定用途的适用性。
编辑:ld --version
GNU ld(Ubuntu 的 GNU Binutils)2.42
版权所有 (C) 2024 Free Software Foundation, Inc.
本程序是免费软件;您可以根据
的条款重新分发它GNU 通用公共许可证版本 3 或(由您选择)更高版本。
这个程序绝对没有保证。
出现
undefined reference to 'main'
错误的原因是编译器在你的文件中找不到int main()
函数。对于为什么会发生这种情况,我有两个建议。
hello.c
具有不寻常的编码(例如UTF16)并且gcc
无法正确读取它。请使用代码编辑工具(例如 VS Code 或 Emacs)正确编码您的文件。hello.c
尚未保存您认为内容的内容。在 cmd 上使用 type hello.c
或在 powershell 上使用 cat hello.c
检查文件。