最近在用VS2008或更高版本开发,初学遇到不少问题,最头疼的问题之一就是: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的工程中加入它们了。也可能出现于在解决方案的开发过程,在解决方案下的某个工程中加入了它们却忘了在其他工程中加入。这个问题类似于第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语言的头文件或主动调用的main.cpp文件的最开始部分加入如下代码:

#ifdef __cplusplusextern "C"{#endif

void readRegmark(char *regmark); //这里写函数声明

#ifdef __cplusplus

}#endif

给链接器提示这个函数是C语言的,别TM找错了。

碰到“error LNK2019: 无法解析的外部符号”

有一个解决方案,有两个工程A,B。工程B中定义了一个类,在工程A的demo.cpp中引用该类,但是如果是#include "XX,h",则会出现“error LNK2019: 无法解析的外部符号”;如果是#include "XX.cpp",则可以顺利编译通过。

想来是因为引用 .h 文件导致找不到.cpp中的定义,而引用.cpp可以通过.cpp找到.h(.cpp有对.h的include)。但是如果同在工程B下面,则#include "XX,h"也是正确的,它会自动关联到同名的(反正是对应的).cpp文件。在不同工程中应该如何引用呢?

看见一种原因分析,如下:现场情况:

funcname 在文件file.cpp/h中定义实现void funcname(void) {;}

filecall.c文件内呼叫funcname()函数。

就会出现上面情况。

症因:因c/c++混合编程, c文件内函数无法呼叫c++文件内函数。

解决办法:或者将c文件名改为.cpp,或者将c++文件名改为.c。上面的解决采用将 file.cpp 更名为file.c即可。

c语言未解析的外部标志,“error LNK2019: 无法解析的外部符号”之分析相关推荐

  1. C语言LNK2019错误怎么解决,error LNK2019: 无法解析的外部符号 (解决方法)

    在用C++进行套接字编程时遇到下面的错误: 1>------ 已启动生成: 项目: NetClient, 配置: Debug Win32 ------ 1>  NetClient.cpp ...

  2. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 2011年08月05日 09:08:15

    经过测试,能解决问题 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 一,问题描述 MSVCRTD.lib(crtexew.obj) ...

  3. MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16

    1.问题描述 做开源项目时,碰到VS2010报错如下: MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 _ ...

  4. error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void)”中被引用

    From:https://blog.csdn.net/u012570056/article/details/74639894 一,问题描述 MSVCRTD.lib(exe_winmain.obj) : ...

  5. 在cocos2dx2.2.3中遇到的error LNK2019: 无法解析的外部符号 _libiconv_closexxxxxxx的解决办法

    转自:http://blog.csdn.net/wxq_wuxingquan/article/details/44978031 conv是Cocos2dx自带的非常好用的可以解决中文乱码问题的库,但是 ...

  6. CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...

    1>------ 已启动生成: 项目: S_BulkLoop, 配置: Debug Win32 ------ 1>生成启动时间为 2014/3/14 17:52:26. 1>Init ...

  7. Main.obj : error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 long __cdecl InitD3D(struct HWND__ *)

    错误问题: Main.obj : error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 "long __cdecl InitD3D(struc ...

  8. error LNK2019: 无法解析的外部符号 XXXXXXXXX,该符号在函数XXX中被引用

    如:在调用ffmpeg接口时,出现如下错误: 1>decede.obj : error LNK2019: 无法解析的外部符号 "struct AVFrame * __cdecl av_ ...

  9. error LNK2019: 无法解析的外部符号 “public: __cdecl ...,函数 ...中引用了该符号解决办法

    vs报错输出如下所示: 1>myview.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl CSPReport::CSPReport(vo ...

最新文章

  1. GridView隐藏列取值解决方案
  2. 二胖写参数校验的坎坷之路
  3. 如何写一份优秀的Java程序员简历?
  4. 登录界面的滑动_【提醒】电子税务局登录方式有变化! 8月31日关闭“原方式登录”...
  5. UDP、广播、多播与IGMP(七)
  6. 爱屋及乌 年轻投资者因喜爱Snapchat亏钱也买Snap股票
  7. 电商前台模板中文html5_跨境电商平台上产品如何上传?虾皮新版批量上传工具使用指南分享...
  8. IntelliJ IDEA代码分屏显示
  9. 微信公众平台——被动回复用户消息
  10. java script数据类型_javascript 六种数据类型
  11. Swift封装 滑出式导航栏
  12. 中ridge_10种线性代数在数据科学中的强大应用(内附多种资源)
  13. css图片等比例裁剪
  14. GitHub#python#:ppt(批量)转换为pdf
  15. Java — Arrays.toString(string[]) + Enumeration.hasMoreElements()【Arrays类、Enumeration接口】
  16. android 息屏锁频录音、录视频、电话自动录音
  17. vsftpd安装包下载
  18. Charles 抓包手机无法上网
  19. beta阶段测试基本概况对应机型硬件信息
  20. python中输入多个值用什么符号隔开_字典中多个元素之间使用

热门文章

  1. 前端面试题目以及答案
  2. 定速巡航指示灯一直闪_定速巡航关不了怎么办 这些应急操作要学会
  3. 『北京』今天早上刚发生在北京的真实的对话
  4. Linux中环境变量PATH的作用
  5. 云端总成更智能|助力APP开发有如神-逐浪CMSv8.6.1发布
  6. MPAndroidChart 曲线图LineChart使用部分示例
  7. mysql fsync_mysql fsync
  8. 【Linux】解决外置光驱出现Cannot find kickstart file on CDROM
  9. 给非计算机专业学生迟到的回复
  10. 在mac系统中安装node