带界面的vs程序编译出现以下错误:
MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main
一、问题描述
MSVCRTD.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号main,该符号在函数 中被引用 : 1 个无法解析的外部命令
二、原因及解决办法
产生这个问题的真正原因是c语言运行时找不到适当的程序入口函数,
一般情况下,如果是windows程序,那么WinMain是入口函数,在VS2015中新建项目为“win32项目”
如果是dos控制台程序,那么main是入口函数,在VS2015中新建项目为“win32控制台应用程序”
而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。
修改设置适应需求即可。
如果需要的是windows程序:
1.菜单中选择 “项目”->“属性”, 弹出属性页窗口。
2.依次选择:“配置属性”->“C/C++”->“预处理器”->“预处理器定义”,在其中删除_CONSOLE, 添加_WINDOWS。
3.依次选择:“配置属性”->“链接器”->“系统”->“子系统”项改为Windows(/SUBSYSTEM:WINDOWS)。
如果需要的是控制台程序:
1.菜单中选择 “项目”->“属性”, 弹出属性页窗口。
2.依次选择:“配置属性”->“C/C++”->“预处理器”->“预处理器定义”,在其中删除_WINDOWS, 添加_CONSOLE。
3.依次选择:“配置属性”->“链接器”->“系统”->“子系统”项改为CONSOLE(/SUBSYSTEM:CONSOLE)。