提示出现unresolved external symbol _main的解决方法

纸弟弟烧饼284

纸弟弟烧饼284

2016-02-19 10:52

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的提示出现unresolved external symbol _main的解决方法懂设计的网友们快点来了解吧!
提示出现unresolved external symbol _main搜了下找了下原因如下
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16

msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex





下面介绍解决的方法:

1. Windows子系统设置错误, 提示:

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

Windows项目要使用Windows子系统, 而不是Console, 可以这样设置:

[Project] -- [Settings] -- 选择"Link"属性页,

在Project Options中将/subsystem:console改成/subsystem:windows





2. Console子系统设置错误, 提示:

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16

控制台项目要使用Console子系统, 而不是Windows, 设置:

[Project] -- [Settings] -- 选择"Link"属性页,

在Project Options中将/subsystem:windows改成/subsystem:console





3. 程序入口设置错误, 提示:

msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16

通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:

[Project] -- [Settings] -- 选择"Link"属性页,

在Category中选择Output,

再在Entry-point symbol中填入wWinMainCRTStartup, 即可





4. 线程运行时库设置错误, 提示:

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex

这是因为MFC要使用多线程时库, 需要更改设置:

[Project] -- [Settings] -- 选择"C/C++"属性页,

在Category中选择Code Generation,

再在Use run-time library中选择Debug Multithreaded或者multithreaded

其中,

Single-Threaded 单线程静态链接库(release版本)

Multithreaded 多线程静态链接库(release版本)

multithreaded DLL 多线程动态链接库(release版本)

Debug Single-Threaded 单线程静态链接库(debug版本)

Debug Multithreaded 多线程静态链接库(debug版本)

Debug Multithreaded DLL 多线程动态链接库(debug版本)

单线程: 不需要多线程调用时, 多用在DOS环境下

多线程: 可以并发运行

静态库: 直接将库与程序Link, 可以脱离MFC库运行

动态库: 需要相应的DLL动态库, 程序才能运行

release版本: 正式发布时使用

debug版本: 调试阶段使用
展开更多 50%)
分享

猜你喜欢

提示出现unresolved external symbol _main的解决方法

编程语言 网络编程
提示出现unresolved external symbol _main的解决方法

电脑出现NSIS Error错误提示的解决方法

电脑入门
电脑出现NSIS Error错误提示的解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Win10系统出现应用无法运行提示的解决方法

电脑入门
Win10系统出现应用无法运行提示的解决方法

解决Eclipse add external jars运行出现java.lang.NoClassDefFoundError的方法

编程语言 网络编程
解决Eclipse add external jars运行出现java.lang.NoClassDefFoundError的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

jquery提示 object expected的解决方法

Web开发
jquery提示 object expected的解决方法

Win7系统开机出现黑屏提示“bootmgr is compressed”解决方法

电脑网络
Win7系统开机出现黑屏提示“bootmgr is compressed”解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Give me an answer let me leave - QQ图案分组

Give me an answer let me leave - QQ图案分组

c#中实现文件拖放打开的方法

c#中实现文件拖放打开的方法
下拉加载更多内容 ↓