无法编译C HelloWorld

问题描述 投票:0回答:1

我试图用 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 或(由您选择)更高版本。

这个程序绝对没有保证。

c compilation
1个回答
0
投票

出现

undefined reference to 'main'
错误的原因是编译器在你的文件中找不到
int main()
函数。对于为什么会发生这种情况,我有两个建议。

  1. hello.c
    具有不寻常的编码(例如UTF16)并且
    gcc
    无法正确读取它。请使用代码编辑工具(例如 VS Code 或 Emacs)正确编码您的文件。
  2. hello.c
    尚未保存您认为内容的内容。在 cmd 上使用
    type hello.c
    或在 powershell 上使用
    cat hello.c
    检查文件。
© www.soinside.com 2019 - 2024. All rights reserved.