这个报错不是代码逻辑错,是VS 项目类型建错了。
一、报错原因
– LNK2019 无法解析的外部符号 _main
– 说明:你建的是 「空项目」,但子系统设成了 Windows,它要找 WinMain ,找不到你写的 main ,就报错。
二、最快解决(30 秒搞定)
1. 右键你的项目 → 属性
2. 点开 链接器 → 系统
3. 把 子系统 从
Windows (/SUBSYSTEM:WINDOWS)
改成
控制台 (/SUBSYSTEM:CONSOLE)
4. 确定 → 重新生成
三、以后不踩坑的新建方法
以后写 C 语言 main 函数,这么建:
– 新建项目 → 空项目
– 右键项目 → 添加 → 新建项 → C++ 文件(.cpp),把后缀改成 .c
– 直接写 main() 就不会报这个错了




#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (5 == i)
break;
printf("%d ", i);
i++;
}
return 0;
}
int main()
{
int n = 1;
while (n <= 10)
{
if (5 == n)
continue;
printf("%d ", n);
n++;
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入初始值:>");
scanf("%s", password);
printf("%s\\n", password);
printf("请确认(Y/N):>");
int tmp = 0;
while ((tmp = getchar()) != '\\n')
{
;
}
int ch = getchar();
if (ch == 'Y')
{
printf("确认成功\\n");
}
else
{
printf("确认失败\\n");
}
return 0;
}



