VSCode的WSL/Ubuntu环境下编译C代码遇`main`未定义引用错误求助
解决编译时"undefined reference to `main'"错误的方法
首先你的代码存在语法错误,这是导致链接器找不到main函数的核心原因:
printf语句的字符串未正确闭合,你直接在字符串内换行,且把, name写在了字符串引号外部,这会让编译器无法正确解析main函数的完整结构,最终导致链接阶段找不到main符号。
修正后的代码
#include <stdio.h> #include "cs50.h" int main(void) { string name = get_string("What is your name: "); printf("hello, %s\n", name); }
修正点说明:
- 将字符串内的换行替换为转义字符
\n - 把
, name移到字符串闭合引号外,作为printf的第二个参数
重新编译
保存修正后的代码后,再次执行编译命令:
clang -o hello2 hello2.c -lcs50
即可正常生成可执行文件。
如果仍有问题,确认当前目录下的hello2.c确实是修改后的版本,没有保存失败的情况。
内容的提问来源于stack exchange,提问作者Jason Tee
相关产品推荐
相关产品推荐

