error C2143: 语法错误 : 缺少“;”(在“}”的前面。error LNK1120: 1 个无法解析的外部命令。error LNK2019: 无法解析的外部符号 _main,该符号在函数

以前入门学习用的基本是codeblocks,DEVC++之类的编译器,感觉没有太大阻碍,但最近使用VC 2010 或者VS,在纯C语言编译下执行时,总是会出现,这样那样满脸问号???的错误,警告。

哪怕是这样一个小学生都能看懂的程序temp1.c,也不给通过!!!。

#include <stdio.h>        //temp1.c
int main()
{
   printf("Hello, World!");
   return 0;
}

这么个程序,5个错误!我承认我很久没敲了,但也不至于连’;’ 分号都不加吧?仔细一看,没错啊,确实没语法错误。是不是编译器出毛病了???
在这里插入图片描述
但后来才发现,在当前窗口打开了多个项目的情况下,VC编译器会默认挨个把这几个项目都执行编译一遍,也就是说,上面那个简单的要命的temp1并没有问题,而是当前窗口的其他C文件出错了。

如图,我这创建了3个项目temp1、temp2、temp3,分别对应3个C语言.c文件。窗口1----temp1.c确实没问题,那编译时为何出现2种错误各出现了两次?
在这里插入图片描述

没错,我只编译temp1项目,但VC把temp1~temp3都挨个编译了一遍,也就是说,这两种错误是由于temp2.c,temp3.c窗口是空的,因而出现了两种错误各出现两遍,即4个错误(2种错误)。

往下看,我把程序粘到temp2.c窗口中,再编译一下:
在这里插入图片描述
此时,虽然我还是编译的temp1.c,但很明显另外两个也被编译了。但这两个错误是由于temp3.c为空造成的。接着如果我把第三个也粘上程序,你应该能猜到结果了------0 erros
在这里插入图片描述
完全正确!

同理,假设我手欠,temp2.c中漏了个分号;目的是让当前打开的其他项目c文件出错,这时编译temp1.c同样会报错。
在这里插入图片描述
但我们要知道的是,这是其他工程文件出错导致的,并不是因为temp1.c写错了,别再傻乎乎盯着正确程序找错误了,给你一天你也照不出来哪错了,因为根本就没错!

因为错误是由其他项目引起的,不管错误直接运行temp1,可以得出正确结果。
在这里插入图片描述

综上,当遇到这几种错误,特别是写几十,上百行的程序时,先把最基础的非主观问题排除,然后再去程序中找bug,可能会让你少受些苦。

error LNK1120: 1 个无法解析的外部命令
error C2143: 语法错误 : 缺少“;”(在“}”的前面
error LNK2019: 无法解析的外部符号 _main,该符号在函数
___tmainCRTStartup 中被引用

写的匆忙,若有理解不当之处,还望指正,共同进步!

  • 1
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 3

打赏作者

@CHINA扫地僧

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值