无法解析的外部符号,VC2005链接错误解决办法

2008-04-02 16:15 阅读 1,762 次 评论 2 条

今天在生成一个工程的时候,编译没有问题,但是在链接的时候出了问题,出现了无法解析的外部符号,错误提示如下:

error LNK2019: 无法解析的外部符号
_imp__SetupDiGetDeviceInterfaceDetailW@24
error LNK2001: 无法解析的外部符号
"private: static struct _OVERLAPPED
CUsbCom::g_WriteOverlapped"

既然编译通过了,就说明了没有语法错误,不用在代码中死抠语法了。从错误中提示中找原因吧。

SetupDiGetDeviceInterfaceDetailW是程序中调用的一个函数,MSDN一下,应用此函数需要Setupapi.lib头文件,这个已经包含(不然编译也不能通过),再往下看发现需要Setupapi.lib或Setupapi.dll库。手动添加,项目->属性->配置属性->链接器->输入 然后在附件依赖项添加Setupapi.lib,再生成第一个无法解析的外部符号错误消失了。

g_WriteOverlapped是我定义的一个类的静态数据成员,原来是没有初始化,在类的.cpp文件中,函数体外初始化g_WriteOverlapped,再生成没有错误了。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:无法解析的外部符号,VC2005链接错误解决办法 | 起点博客
分类:应用笔记 标签:

发表评论


表情

  1. fly
    fly 【农民】

    初学者!!在Charles Petzold 写的《WINDOWS 程序设计》第五版中的第一个窗口项目源代码在visual studio 2005出现如下问题!!求高手指点下

    无法解析的外部符号 “long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)” (?WndProc@@YGJPAUHWND__@@IIJ@Z),该符号在函数 _WinMain@16 中被引用
    1>qq.obj : error LNK2019: 无法解析的外部符号 __imp__PlaySoundA@12,该符号在函数 “long __stdcall WinProc(struct HWND__ *,unsigned int,unsigned int,long)” (?WinProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
    1>LIBCMT.lib(crt0.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

  2. guest
    guest 【农民】

    msdn关于LNK2019的地方有一部分专门讲这个的@fly