“error LNK2019: 无法解析的外部符号”之分析
最近在用VS 2008开发,初学遇到不少问题,最头疼的问题之一就是:LNK2019。
百度一下讲的并不够全面,反正都没解决我的问题。
error LNK2019问题在VC 6.0中是error LNK2001: unresolved external symbol问题,可能错误号改了。
编译时出现类似这样的错误:Dlgcode.obj : error LNK2019: 无法解析的外部符号 _readRegmark,该符号在函数 _AboutDlgProc@16 中被引用。这种错误的本质是链接器无法在已编译的obj、lib或dll文件中找到函数定义。
1、这是百度找到的方法:http://jingyan.baidu.com/article/4d58d54135d7a79dd4e9c0ad.html。就是有头文件(有了函数声明)却没有lib。一般出现于你使用了第三方提供的库,下载了头文件却忘了载库文件,或库文件忘记放到相应的目录下了。
2、你自己写的函数声明的头文件也写了函数定义的cpp文件,却依然出现LNK2019错误。可能原因:忘记将这两个文件加入工程了。一般出现于用Visual Studio和记事本(或UltraEdit)混合开发过程,你用记事本include了相应的头文件,却忘了在Visual Studio的工程中加入它们了。也可能出现于在解决方案的开发过程,在解决方案下的某个工程中加入了它们却忘了在其他工程中加入,我只接触过VC 6和VS 2008,中间好多年没用过新版本VS,到2008时突然发现怎么多了个“解决方案”,“解决方案”下面还可以放好多工程,于是经常在一个工程中写了共享的源代码,却忘了在别的工程中加入它们。这个问题类似于第1个,不同的是这个库是你自己提供的,但没有把它交给VS 2008编译出来。
3、你自己写的函数声明的头文件也写了函数定义的cpp文件也加入工程了而且你很确定函数体肯定是在这个库文件中,却依然出现LNK2019错误。可能原因:C语言和C++语言混编,因为C++支持函数重载所以C++编译器生成的库文件中的函数名会面目全非,例如C编译器会生成 _readRegmark 这个函数名,而C++编译器则生成了"void __cdecl readRegmark(char *)" (?readRegmark@@YAXPAD@Z)这么个函数名。当你的函数是用C语言写的,VS编译器会按C语言规则编译,但链接器却不知道还傻傻的用C++规则的函数名去找结果就找不到了,而你还百般肯定TM的不就在这个库中吗你个睁眼瞎。解决:在C语言的头文件中加入
#ifdef __cplusplus extern "C" { #endifvoid readRegmark(char *regmark); //这里写函数声明 #ifdef __cplusplus } #endif
给链接器提示这个函数是C语言的,别TM找错了。
4、这是我百度来的,姑且也放进来。http://blog.csdn.net/jtop0/article/details/5779782。模板声明和实现要放在同一文件夹中。
5、也是百度来的。http://www.programlife.net/error-lnk2019.html。内联函数定义在头文件中。
6、百度的。http://jingyan.baidu.com/article/d621e8da0d7c022864913f40.html。错误的工程类型造成的。
7、貌似还有不尽之处。http://www.douban.com/note/65638800/。
转载于:https://www.cnblogs.com/hiloves/p/4678848.html
“error LNK2019: 无法解析的外部符号”之分析相关推荐
- c语言未解析的外部标志,“error LNK2019: 无法解析的外部符号”之分析
最近在用VS2008或更高版本开发,初学遇到不少问题,最头疼的问题之一就是:LNK2019. 百度一下讲的并不够全面,反正都没解决我的问题. error LNK2019问题在VC 6.0中是error ...
- mysql lnk2019_“error LNK2019: 无法解析的外部符号”之分析
最近在用VS 2008开发,初学遇到不少问题,最头疼的问题之一就是:LNK2019. 百度一下讲的并不够全面,反正都没解决我的问题. error LNK2019问题在VC 6.0中是error LNK ...
- MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16
1.问题描述 做开源项目时,碰到VS2010报错如下: MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 _ ...
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 2011年08月05日 09:08:15
经过测试,能解决问题 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 一,问题描述 MSVCRTD.lib(crtexew.obj) ...
- vs2008 error LNK2019: 无法解析的外部符号总结
做DLL的时候一直把报错"错误 1 error LNK2019: 无法解析的外部符号 "void __cdecl sevenaxes20170316(double,do ...
- “error LNK2019: 无法解析的外部符号”的几种可能原因
1.前言 error LNK2019: 无法解析的外部符号这个错之前见过很多次,能知道最根本的原因在于链接过程中没有搜索到程序用到的库文件,即*.lib. 笔记本重装了系统,有32Bit升到64Bit ...
- CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
1>------ 已启动生成: 项目: S_BulkLoop, 配置: Debug Win32 ------ 1>生成启动时间为 2014/3/14 17:52:26. 1>Init ...
- error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void)”中被引用
From:https://blog.csdn.net/u012570056/article/details/74639894 一,问题描述 MSVCRTD.lib(exe_winmain.obj) : ...
- C++——错误 error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
错误 error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 maim->main 居然是把main写错了,出现这个错误其实就 ...
- VS2010 error LNK2019: 无法解析的外部符号
使用VS2010编译程序,一般是没有添加附属依赖库,或者是没添加头文件,最近在学习VC++游戏编程,用VS2010建一个Win32项目,写一个画图程序, 但是编译是提示"error LNK2 ...
最新文章
- ViewGroup的Touch事件分发(源码分析)
- Python实现微信防撤回
- 关于图片轮播的几种思路
- [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析
- Google 发布网页统计报告
- msg计算机指令怎样用,WIN7里使用msg命令发送消息失败
- Eclipse使用技巧
- 【摘抄】SLAM中的位姿
- 软件开发和服务项目价格构成及评估方法
- PDMS.NET窗体
- 30行代码实现微信自动回复机器人
- 一天一大 lee(计数二进制子串)难度:简单-Day20200810
- Unity合规检测处理
- MATLAB-工具箱-如何导出拟合系数?
- Libra为何而生?Facebook为何要给 Libra创建Move语言?Calibra技术负责人给出了回答...
- 八种生物成像技术,你青睐谁?
- 【b站求职笔记】行路院-王贺 2020年12月笔记
- 《Linux系统调用:opendir,readdir,closedir,rewinddir》
- 反射型XSS靶场练习
- javascript eq()用法
热门文章
- android wear系统源码,android wear5.1怎么样 android wear5.1更新评测
- java中什么是线程安全_Java 多线程:什么是线程安全性
- 【数据库原理实验(openGauss)】认识DBMS系统
- scala Trait及其与抽象类的比较
- GIVE root password for maintenance
- Maven项目打包成可执行Jar文件
- 《构建高可用Linux服务器 第3版》—— 2.7 系统维护时应注意的非技术因素
- 《IT项目管理》读书笔记(1) —— 概述
- HOOK使用:全局键盘钩子
- 全面启动远程医疗行业