当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-10-13

    本文导语:  提示出现unresolved external symbol _main搜了下找了下原因如下在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error...

提示出现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版本: 调试阶段使用

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • copy文件的时候,我发觉同名文件不会出现是否覆盖的提示,能不能容纳嘎系统给个“是否覆盖的提示”
  • 登录后无法启动桌面,出现命令窗口,提示找不到字符集.
  • 用虚拟机装完LINUX为什么总会出现如图那的提示?
  • 郁闷!服务器输入部分命令出现这种提示Input/output error
  • 电脑安装linux提示 8254出现异常
  • gcc编译中出现的这种错误提示 stray '357' in program
  • Red Hat Linux9.0安装过程中出现下列提示 是什么问题?
  • red hat 运行 mysql5.1 出现奇怪提示
  • 急急急!!!fc1下安装fctix,可以出现提示条,但是无法显示汉字,只能显示英文。
  • Codeigniter出现错误提示Error with CACHE directory的解决方案
  • 装有DB2的SCO UNIX系统运行中,出现警告提示...请问此警告是什么意思,如何解决?
  • 出现grub>命令提示 怎么进入系统?
  • 请问,我的机器突然出现,找不到注册文件的提示,是为什么呢?
  • 为什么我在安装linux 8.0时老是出现以下提示?
  • 为什么在cygwin 中使用 ldd 出现conmand not found 的提示呢?
  • 我都LINUX系统是做防火墙的,出现一行提示符我不懂,请指教!谢谢!
  • 电脑突然断电后,ubuntu打不开了,出现错误提示
  • 打开FC3_with_SER出现的提示
  • Eclipse下jQuery文件报错出现错误提示红叉
  • c语言出现以下错误提示请问如何解决
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • 如何cp就没有提示了,现在如果有重复文件还提示。想去掉。
  • 如何在windows下的DOS窗口中显示utf-8字符(CMD命令提示符终端显示utf-8字符)
  • 在登录时,系统会提示你是否保存密码,请问怎么将此提示去掉
  • JavaScript中的消息框(警告框,确认框,提示框)语法
  • 在登录时,系统会提示你是否保存密码,请问怎么将这个提示去掉呀
  • windows下cmd命令提示符下让程序后台运行命令
  • 请问怎样改变终端上的提示符``我现在看到的提示符是$ ,我想转到#这种``怎样做
  • 为什么当我引用joptionpane时,提示弹出后,关闭此提示,好象程序没有退出来?
  • 按步骤装完了unix,最后提示我安装完成,可是当重新启动的时候不能进入系统,提示 "NO OS",各位给指点一下
  • 求助 RH9.0在命令行下的提示都是乱码,如何让它显示英文提示?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3