请选择 进入手机版 | 继续访问电脑版

技术_方法_掌握技术,成就未来-6miu百度云

 找回密码
 立即注册
查看: 4|回复: 0

error LNK2001: unresolved external symbol

[复制链接]

277万

主题

277万

帖子

832万

积分

论坛元老

Rank: 8Rank: 8

积分
8326212
发表于 2021-1-4 13:17:40 | 显示全部楼层 |阅读模式
解决外部符号错误:_main,_WinMain@16,__beginthreadex ) 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数,就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:  libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main  LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
[color=]_WinMain@16
  msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol
[color=]_WinMain@16
  nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex  nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex n  

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
[color=]_WinMain@16


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

[Project] --> [Settings] --> 选择"Link"属性页,  在Project Options中将/subsystem:windows改成/subsystem:console  3. 程序入口设置错误, 提示:  msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol
[color=]_WinMain@16
通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:

[Project] --> [Settings] --> 选择"Link"属性页, 在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup, 即可 4. 线程运行时库设置错误, 提示: @: kAF n 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版本: 调试阶段使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|技术_方法_掌握技术,成就未来-6miu百度云

GMT+8, 2021-1-19 06:22 , Processed in 0.063099 second(s), 21 queries .

合作伙伴:

盘搜搜 / 百度云搜索 / 盘多多 / 如风搜 / 小说阅读网 / 笔趣阁 / 文库 / 学术 / 小说排行榜 / 专利网 / 专利查询 / 网盘搜索 / 网盘 / 问医生 / 健康网 / APP开发 / 金蝶 / 软件定制 / 软件开发 / 教育app / ERP系统 / SAP / 分销系统 / 成都软件开发 / 小程序开发 / ERP / WMS / MES / LIMS / SCADA / PLM / PDM / 希沃 / SEEWO / OTO / O2O / 培训系统 / 在线问诊 / 在线问诊系统 / 医疗咨询系统 / 网店代运营 / 返利网 / 京东代运营 / 斯特封 / trelleborg / NOK / 斯凯孚 / SKF / 圣戈班 / Saint-Gobain / 派克汉尼汾 / parker / 洪格尔 / hunger / Merkel / 密封圈 /
快速回复 返回顶部 返回列表