在Visual Studio编写C语言Hello World报undefined reference to `main'错误如何解决
错误本质
你遇到的undefined reference to main是GCC链接阶段的报错,C语言程序的默认执行入口是main函数,链接器扫描所有参与编译的源文件后,没有找到符合要求的main函数,就会抛出这个错误。
排查步骤
- 先确认你写了main函数的代码是否成功保存在编译的目标文件中:你当前的编译指令编译的是
/home/luca/c++/.vscode/test.c,你可以直接在终端执行以下命令查看磁盘上实际存储的test.c内容:
cat /home/luca/c++/.vscode/test.c
如果输出的内容和你写的代码不一致,说明你修改代码后没有保存,在编辑器按下Ctrl+S保存后重新编译即可。
- 检查main函数拼写:确认你代码里的入口函数是小写的
main,没有写成Mian、mian这类拼写错误。 - 确认编译目标正确:如果你写代码的源文件不是test.c,现在的编译指令只会编译固定的test.c,自然找不到你写在其他文件里的main函数。
解决方法
- 如果是文件没有保存的问题,保存后重新编译即可。
- 如果是源文件名不匹配,可以手动修改编译指令中的源文件名,比如你的代码存在hello.c里,就用指令:
gcc hello.c -o hello && ./hello
- 如果要让Visual Studio Code每次编译当前打开的文件,修改
.vscode/tasks.json中的编译参数,把固定的test.c替换为变量${file},即可自动匹配当前编辑的源文件。
内容的提问来源于stack exchange,提问作者Drake
相关产品推荐
相关产品推荐

