第一次用visual studio 2019,跟着网上教程新建了第一个项目,结果第一次运行就出来:error LNK2019: 无法解析的外部符号 _main,该符号在函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中被引用;
大家百度搜索出来的一定都是类似:
c语言运行时找不到适当的程序入口函数,如果是windows程序,那么WinMain是入口函数,在VS中新建项目为“win32项目”;
如果是dos控制台程序,那么main是入口函数,在VS中新建项目为“win32控制台应用程序”
说来惭愧…我也不懂这些,跟着教程发现自己的入口函数main()是和控制台程序正确对应的,百度了好久也没解决,因为我在main()函数前定义了个类class,天真(愚蠢)的考虑是不是vs有什么规定,class不能和main()函数放在一个程序中,尝试把class去掉之后真的可以运行了!!
我很疑惑,是我的类哪里写错了吗,随便百度copy了一个放在我main()前面,发现也没报错,这个时候发现了那个罪魁祸首!!
class定义最后没加 ; 分号!!!!!
没加分号,意味着编译器认为我这个main()函数是和前面的…}一个语句,自然识别不出来;因为入口函数都找不到,程序自然也没办法提醒我们少了分号。
so,如果大家发现这个问题并不是因为运行程序和入口函数不匹配造成的,就看看main()函数前(紧挨着的前面,再往前就影响不到main()了)是不是少个分号
class P{
.....
};//这个地方一开始没有分号
int main(){
return 0;
}