c++ 模板 无法解析的外部符号

代码如下:
图片说明
我把所有方法和头文件声明放在Main.cpp里面的话就可以正常云心,但是一旦分离就会出现问题

 1>------ 已启动生成: 项目: Project1, 配置: Debug x64 ------
1>Stack.cpp
1>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/FORCE”规范)
1>Main.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl Stack<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::Printf(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Printf@?$Stack@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@QEAAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),该符号在函数 main 中被引用
1>Main.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl Stack<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::Stack<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(void)" (??0?$Stack@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@QEAA@XZ),该符号在函数 main 中被引用
1>C:\Users\Administrator\source\repos\C++Test\x64\Debug\Project1.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>已完成生成项目“Project1.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
 求大佬解答一下,谢

3个回答

vs在写模板函数时,头文件和cpp文件不能分离,就是说你头文件里有模板的函数必须在头文件里实现,没有模板的函数可以放到cpp文件实现,模板类也如此

MikuLingSSS
MikuLingSSS 卧槽 就为了这个浪费了一天 感觉自己神菜
11 个月之前 回复

通常,对于无法解析外部命令这个问题的处理方法:先关闭程序,再打开,重新生成编译

hernofogot
hernoforgot 回复MikuLingSSS: 你可以把.h文件和模板cpp文件放在一起,方便调用,要不然要使用extern,我的编译器也是vs,但是写不出来你这个就直接报错了
11 个月之前 回复
MikuLingSSS
MikuLingSSS 唉 都试过了 关机大发,Debug Release X86 64 都没用 我现在都感觉是不是系统坏了
11 个月之前 回复

模板比较特殊,不能将定义和声明分开。因为模板只有在调用实例的时候才会将模板参数替换为实际参数,生成二进制的字节码。如果定义和声明分开,以你的例子为例,此时生成了Stack.obj和main.obj两个obj文件,但是Stack里面并没有真正使用模板,二进制字节码其实是没有产生的。而mian中需要模板函数的地方只是会调用call,等待链接时链接真正的模板函数的地址;由于main的include里只有生命,没有定义,所以main中也是不可能产生二进制字节码的。等到真正链接的时候,Stack.obj和main.obj都不存在以string为实际模板参数的二进制字节码,所以会报调用失败。解决方法(1)在.h中实现定义,放来类中类外无所谓 ;(2)在.cpp中添加template Stackstack,让编译器在生成Stack,obj的时候实例调用模板生成二进制字节码,这样今后链接就可以找到啦!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
模板,无法解析的外部符号
问题描述 写c++类时,习惯将类的声明与实现放在不同的文件中(*.h;*.cpp),所以在写模板类时,我也习惯性的这么做。编译后,提示无法解析的外部符号,     解决方案一 将模板类的声明与实现放在同一个*.h文件中     解决方案二 保持声明与实现放在不同的文件中,但是需要在*.h文件的最后include实现文件,实现文件的后缀名不能用*.cpp,不同编译不过,如下,  
c++ 模板 无法解析的外部符号
代码如下:rn ![图片说明](https://img-ask.csdn.net/upload/201810/18/1539854060_585245.png)rn 我把所有方法和头文件声明放在Main.cpp里面的话就可以正常云心,但是一旦分离就会出现问题rn rn rnrn```rn 1>------ 已启动生成: 项目: Project1, 配置: Debug x64 ------rn1>Stack.cpprn1>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/FORCE”规范)rn1>Main.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl Stack,class std::allocator > >::Printf(class std::basic_string,class std::allocator >)" (?Printf@?$Stack@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@QEAAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),该符号在函数 main 中被引用rn1>Main.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl Stack,class std::allocator > >::Stack,class std::allocator > >(void)" (??0?$Stack@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@QEAA@XZ),该符号在函数 main 中被引用rn1>C:\Users\Administrator\source\repos\C++Test\x64\Debug\Project1.exe : fatal error LNK1120: 2 个无法解析的外部命令rn1>已完成生成项目“Project1.vcxproj”的操作 - 失败。rn========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========rn```rn 求大佬解答一下,谢
模板 报 无法解析的外部符号
[img=https://img-bbs.csdn.net/upload/201506/25/1435218706_357859.png][/img]rnrn写了这么个代码, 报 无法解析的外部符号rnrn error LNK2001: 无法解析的外部符号 "public: static struct test foo::_test" (?_test@foo@@2U?$test@Ufoo@@@@A)rn1>D:\work\C++\C++Test\Debug\C++Test.exe : fatal error LNK1120: 1 个无法解析的外部命令
VS2015无法解析外部符号
在使用VS编辑C++时,遇到了无法解析外部符号的错误 严重性 代码 说明 项目 文件 行 错误 LNK2019 无法解析的外部符号 &quot;public: __thiscall Employee::Employee(void)&quot; (??0Employee@@QAE@XZ),该符号在函数 &quot;public: __thiscall manager::manager(int,class std::bas...
无法解析的外部符号
1. #include 了 头文件,却没有包含进项目里。 2.没有包含头文件。 3.没有路径。 4.没有包含lib
WNetOpenEnum无法解析的外部符号
在头文件中我已经加上了#include ,并且在链接中加上了Mpr.lib,为什么还会出错
求救!无法解析的外部符号
自己写了个贪食蛇程序,在编译时报错:rnrn error LNK2019: 无法解析的外部符号 "public: __thiscall Snake::Snake(void)" (??0Snake@@QAE@XZ),该符号在函数 "protected: __thiscall CSnakeView::CSnakeView(void)" (??0CSnakeView@@IAE@XZ) 中被引用rnrnerror LNK2019: 无法解析的外部符号 "public: __thiscall Snake::~Snake(void)" (??1Snake@@QAE@XZ),该符号在函数 "public: virtual __thiscall CSnakeView::~CSnakeView(void)" (??1CSnakeView@@UAE@XZ) 中被引用rnrnSnake是我自己建的贪食蛇类,Snake(void)和~snake(void)是构造和析构函数,我在CSnakeView里对它进行了实例化,之后就抱错了,不知道错在哪里,求教!!!!
无法解析的外部符号DirectDrawCreateEx
以前用2005的时候没这个问题,按照说明设置好路径就可以了,但换成2008就不行,求助问题如下:rn首先,在生成解决方案的时候报错:“无法解析的外部符号DirectDrawCreateEx"rnrn于是我按照说明去添加DDRAW.LIB文件的路径:工具--选项--项目和解决方案--VC++目录,右上角的下拉菜单选择“库文件”。rn rn就在这里,我发现默认已经包含了“H:\Microsoft DirectX SDK (March 2009)\Lib\x86”也就是DDRAW.LIB所在的路径,所以我怀疑是不是还要把x86打开把ddraw.lib也加进去。但是发现不行,只能打开到x86。rn rn最后没办法,手工把ddraw.lib写进去吧, rnrn继续生成解决方案,发现依然报错。跪求原因,期待用过VS2008的大牛回答。rnPS:当程序中加进KEYDOWN宏指令的时候,也会报错,而且我有把加进程序开头。 rn
无法解析的外部符号的问题
今天遇到个这问题,一直没解决。 .LIB已经肯定导入了的 开始是用多字节编码写的,没有问题,但是改成UNICODE之后就会出现有链接不到的函数,而且不是显示全部的函数都不能链接,只有一部分不能链接。rn库是最新的 2边都是UNICODE rn求指教
c++ 无法解析的外部符号
我在一个类的成员函数中调用另一个类中的成员函数时,出现了以下错误:rn无法解析的外部符号 "public: void __thiscall EditHoleFactory::fillhole(void)" (?fillhole@EditHoleFactory@@QAEXXZ),该符号在函数 "private: void __thiscall MainWindow::trProject(void)" (?trProject@MainWindow@@AAEXXZ) 中被引用rn代码我就不贴了,就是基本的调用
“无法解析的外部符号”错误
[size=16px][size=12px]1> 正在生成代码...rn1>MapLine.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CMapRectangle::~CMapRectangle(void)" (??1CMapRectangle@@QAE@XZ),该符号在函数 __unwindfunclet$??0CMapLine@@QAE@XZ$0 中被引用rn1>MapPoints.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CMapRectangle::~CMapRectangle(void)" (??1CMapRectangle@@QAE@XZ)rn1>MapPolygon.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CMapRectangle::~CMapRectangle(void)" (??1CMapRectangle@@QAE@XZ)rn1>MapLine.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CMapRectangle::CMapRectangle(void)" (??0CMapRectangle@@QAE@XZ),该符号在函数 "public: __thiscall CMapLine::CMapLine(void)" (??0CMapLine@@QAE@XZ) 中被引用rn1>MapPoints.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CMapRectangle::CMapRectangle(void)" (??0CMapRectangle@@QAE@XZ)rn1>MapPolygon.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CMapRectangle::CMapRectangle(void)" (??0CMapRectangle@@QAE@XZ)rn1>MapLine.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CMapRectangle::CMapRectangle(class CMapRectangle &)" (??0CMapRectangle@@QAE@AAV0@@Z),该符号在函数 "public: class CMapRectangle __thiscall CMapLine::GetExtent(void)" (?GetExtent@CMapLine@@QAE?AVCMapRectangle@@XZ) 中被引用rn1>MapPoints.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CMapRectangle::CMapRectangle(class CMapRectangle &)" (??0CMapRectangle@@QAE@AAV0@@Z)rn1>MapPolygon.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CMapRectangle::CMapRectangle(class CMapRectangle &)" (??0CMapRectangle@@QAE@AAV0@@Z)rn1>MapPolygon.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall CMapRectangle::IsPointIn(class CMapPoint &)" (?IsPointIn@CMapRectangle@@QAEHAAVCMapPoint@@@Z),该符号在函数 "public: int __thiscall CMapPolygon::IsPointIn(class CMapPoint &)" (?IsPointIn@CMapPolygon@@QAEHAAVCMapPoint@@@Z) 中被引用rn1>F:\VC学习\MapG1.0\Debug\MapG1.0.exe : fatal error LNK1120: 4 个无法解析的外部命令[/size][size=14px][/size][/size]
无法解析的外部符号__getreent
使用vc编译器调用静态库.a时,出现了此错误,解决方法: 附加依赖项添加:libpthread.a
无法解析的外部符号,原因.
我在程序中添加rn Fl_Menu_Bar *bar = new Fl_Menu_Bar(0, 0, width,24,"gmdj");//sh+4);rn bar->menu(bar_table);rnrn语句后出现:rnerror LNK2019: 无法解析的外部符号 "struct Fl_Menu_Item * bar_table" (?bar_table@@3PAUFl_Menu_Item@@A),该符号在函数 "public: __thiscall graphicWindow::graphicWindow(bool,int)" (??0graphicWindow@@QAE@_NH@Z) 中被引用rn1>F:\PGrid\PGrid-compile\Release\gmsh.exe : fatal error LNK1120: 1 个无法解析的外部命令rnrn程序#include "Fl_Menu_.H"中定义rnclass FL_EXPORT Fl_Menu_Bar : public Fl_Menu_ rnprotected:rn void draw();rnpublic:rn int handle(int);rn Fl_Menu_Bar(int X, int Y, int W, int H,const char *l=0)rn : Fl_Menu_(X,Y,W,H,l) rn;rnrnrn#include "Fl_Menu_.H"也在我上面语句中的文件中添加了rnrn出现原因是什么啊!
无法解析的外部符号 _IEGetProtectedModeCookie@20
无法解析的外部符号 _IEGetProtectedModeCookie@20rnrn这个要怎么解决
vs2015 无法解析的外部符号
rnrn1>------ 已启动生成: 项目: anubis, 配置: Debug Win32 ------rn1> gnut-anubis.cpprn1>gnut-anubis.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall gnut::t_gmutex::t_gmutex(void)" (??0t_gmutex@gnut@@QAE@XZ),该符号在函数 "void __cdecl gnut::`dynamic initializer for '_gmutex''(void)" (??__E_gmutex@gnut@@YAXXZ) 中被引用rnrn1>gnut-anubis.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall gnut::t_gmutex::~t_gmutex(void)" (??1t_gmutex@gnut@@QAE@XZ),该符号在函数 "void __cdecl gnut::`dynamic atexit destructor for '_gmutex''(void)" (??__F_gmutex@gnut@@YAXXZ) 中被引用rnrn1>gnut-anubis.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall gnut::t_gtime::t_gtime(enum gnut::t_gtime::t_tsys const &)" (??0t_gtime@gnut@@QAE@ABW4t_tsys@01@@Z),该符号在函数 _main 中被引用rnrn1>gnut-anubis.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall gnut::t_gtime::~t_gtime(void)" (??1t_gtime@gnut@@QAE@XZ),该符号在函数 _main 中被引用rnrnrn请问 这是怎么回事,有大神知道怎么修改吗?
无法解析的外部符号 __imp__timeGetTime@0
error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数 "public: void __thiscall Ccount_sizeView::OnCount(void)" (?OnCount@Ccount_sizeView@@QAEXXZ) 中被引用 原因分析:没有加入相应的链接库,winmm.lib. 解决办法:根据错误提示找到
MFC 无法解析的外部符号
可能是原来在全局文件的全局变量被删除,恰巧多个文件用到这个变量,这样就无法解析这个变量了。得在所有用到这个变量的地方头文件里分别定义,一个不能丢
无法解析的外部符号 _GUID_SysKeyboard
在visual studio2013中使用Directx 获取键盘数据,编译成功,链接出错。使用的头文件包含了#include #pragma comment(lib, "dinput8.lib")rnrn1>------ 已启动生成: 项目: Direct3DTest1, 配置: Debug Win32 ------rn1>Direct3D.obj : error LNK2001: 无法解析的外部符号 _IID_IDirectInput8Wrn1>Direct3D.obj : error LNK2001: 无法解析的外部符号 _GUID_SysKeyboardrn1>dinput8.lib(dilib2.obj) : error LNK2001: 无法解析的外部符号 _GUID_Keyrn1>D:\Visual Studio 12.0\Direct3DTest1\Debug\Direct3DTest1.exe : fatal error LNK1120: 3 个无法解析的外部命令rn========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========rnrn求高手解决
无法解析的外部符号...
错误:rndigital_network.obj : error LNK2005: "class bin_seq __cdecl binary_channel(class bin_seq const &,class std::basic_istream > &)" (?binary_channel@@YA?AVbin_seq@@ABV1@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) 已经在 exem5.obj 中定义rnrnrn函数 bin_seq binary_channel(const bin_seq &ip,istream& in) 我在头文件digital_network.h中声明并定义的,在exem5.cpp中使用的rnrn怎么出现这个错误呢?rn头文件中有ifndef define
无法解析的外部符号 __imp_RegCloseKey
一.相关错误LNK2001 无法解析的外部符号 __imp__RegQueryValueExA@24  LNK2001 无法解析的外部符号 __imp__RegOpenKeyExA@20 LNK2001 无法解析的外部符号 __imp__RegCloseKey@4 二.解决办法缺少 Advapi32.lib在系统中找到对应的lib文件,复制到相应工程文件debug中在pro文件中增加 LIBS +...
无法解析的外部符号是什么
我用的是vs,新建了一个工程,明明在DevC++上可以生成可执行文件的,到了vs就只能生成.obj文件,说连接错误
模板方法之无法解析的外部符号
1、在一个文件中完成模板的声明及实现 2、在模板头文件末尾添加实现文件的包含 #include &quot;MyTemnplate.cpp&quot; 3、在调用方(main.cpp中)包含实现文件 #include &quot;MyTemnplate.cpp&quot;   第二种方式还不如第一种方式简洁,实际上就是一个东西, 第三种方法可能会造成而外开销(比如多个模块都调用了这个模板的某个特化实例的 情形) 但一般来说...
无法解析的外部符号 的问题。
我做了一个工程,里面有一个虚类接口。rnclass CClientCommandrnrnpublic:rn virtual int DoMessage(CMessage* pMessage, bool& bDeleteFlag) = 0; // return 0;;rn;rnrn然后我在这个工程里面添加了一个DLL工程,设置依赖关系为DLL依赖主工程。rn然后我在这个DLL里面加了一个继承类rn#include "../Main/ClientCommand.h"rnclass CBaseCommand : public CClientCommandrnrnpublic:rn CBaseCommand(void);rn ~CBaseCommand(void);rnrn int DoMessage(CMessage* pMessage, bool& bDeleteFlag);rnrn;rnrn在这里面我重新写了DoMessage()接口内的逻辑。rn但是编译的时候报错rn1>BaseCommand.obj : error LNK2019: 无法解析的外部符号 "public: unsigned int __thiscall CBuffPacket::GetWriteLen(void)" (?GetWriteLen@CBuffPacket@@QAEIXZ),该符号在函数 "public: virtual int __thiscall CBaseCommand::DoMessage(class CMessage *,bool &)" (?DoMessage@CBaseCommand@@UAEHPAVCMessage@@AA_N@Z) 中被引用rnrnCBuffPacket是我的主工程里面的类,而且是完整的,不存在函数没有实现的方法。(我查询了网上的资料)rn我在Linux下这么写就没有问题,很久没有写Windows程序了,请教大侠们帮我看看吧。感觉是不是应该设置什么。rn
无法解析的外部符号 _CLSID_...
本人初学ATL,第一个测试程序就出问题了。我已经包含了一个ATLTest_i.h的头文件,里面已经定义了EXTERN_C const CLSID CLSID_CATLTestClass; rnEXTERN_C const IID IID_ICATLTestClass; rn在我cpp的一个Test方法中有如下代码: rnHRESULT hr; rnICATLTestClass* pIntf = NULL; rnhr = ::CoCreateInstance(CLSID_CATLTestClass,NULL,CLSCTX_SERVER,IID_ICATLTestClass,(void **)&pIntf); rnif(SUCCEEDED(hr)) rn rnpIntf->Welcome(); rnpIntf->Release(); rn rn出错如下: rnATLTestDlgDlg.obj : error LNK2001: 无法解析的外部符号 _CLSID_CATLTestClass rnATLTestDlgDlg.obj : error LNK2001: 无法解析的外部符号 _IID_ICATLTestClass rn实在不知何故,希望有人指点一二,不胜感激!
又来!!无法解析的外部符号
Creating library Debug/cddareader.lib and object Debug/cddareader.exprnstrmbaseD.lib(dllentry.obj) : warning LNK4217: locally defined symbol __mbsrchr imported in function __tcsrchr@8rnstrmbaseD.lib(wxdebug.obj) : warning LNK4049: locally defined symbol __mbsrchr importedrnstrmbaseD.lib(wxdebug.obj) : warning LNK4217: locally defined symbol _vsprintf imported in function "void __cdecl DbgLogInfo(unsigned long,unsigned long,char const *,...)" (?DbgLogInfo@@YAXKKPBDZZ)rnstrmbaseD.lib(wxdebug.obj) : warning LNK4217: locally defined symbol _sprintf imported in function "public: __thiscall CDisp::CDisp(double)" (??0CDisp@@QAE@N@Z)rnCDDAReader.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CBaseFilter@@UAGJPB_WPAPAUIPin@@@Z)rnasyncreaderD.lib(asyncrdr.obj) : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CBaseFilter@@UAGJPB_WPAPAUIPin@@@Z)rnCDDAReader.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::JoinFilterGraph(struct IFilterGraph *,wchar_t const *)" (?JoinFilterGraph@CBaseFilter@@UAGJPAUIFilterGraph@@PB_W@Z)rnasyncreaderD.lib(asyncrdr.obj) : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::JoinFilterGraph(struct IFilterGraph *,wchar_t const *)" (?JoinFilterGraph@CBaseFilter@@UAGJPAUIFilterGraph@@PB_W@Z)rnCDDAReader.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::QueryVendorInfo(wchar_t * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPA_W@Z)rnasyncreaderD.lib(asyncrdr.obj) : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::QueryVendorInfo(wchar_t * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPA_W@Z)rnasyncreaderD.lib(asyncrdr.obj) : error LNK2019: unresolved external symbol "public: __thiscall CBasePin::CBasePin(char *,class CBaseFilter *,class CCritSec *,long *,wchar_t const *,enum _PinDirection)" (??0CBasePin@@QAE@PADPAVCBaseFilter@@PAVCCritSec@@PAJPB_WW4_PinDirection@@@Z) referenced in function "public: __thiscall CAsyncOutputPin::CAsyncOutputPin(long *,class CAsyncReader *,class CAsyncIo *,class CCritSec *)" (??0CAsyncOutputPin@@QAE@PAJPAVCAsyncReader@@PAVCAsyncIo@@PAVCCritSec@@@Z)rnasyncreaderD.lib(asyncrdr.obj) : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBasePin::QueryId(wchar_t * *)" (?QueryId@CBasePin@@UAGJPAPA_W@Z)rnstrmbaseD.lib(source.obj) : error LNK2019: unresolved external symbol __imp___wtoi referenced in function "public: virtual long __stdcall CSource::FindPin(unsigned short const *,struct IPin * *)" (?FindPin@CSource@@UAGJPBGPAPAUIPin@@@Z)rnstrmbaseD.lib(wxutil.obj) : error LNK2019: unresolved external symbol __imp__timeGetTime@0 referenced in function "public: int __thiscall CAMMsgEvent::WaitMsg(unsigned long)" (?WaitMsg@CAMMsgEvent@@QAEHK@Z)rnstrmbaseD.lib(wxdebug.obj) : error LNK2001: unresolved external symbol __imp__timeGetTime@0rnstrmbaseD.lib(wxutil.obj) : error LNK2019: unresolved external symbol __imp__timeSetEvent@20 referenced in function "unsigned int __stdcall CompatibleTimeSetEvent(unsigned int,unsigned int,void (__stdcall*)(unsigned int,unsigned int,unsigned long,unsigned long,unsigned long),unsigned long,unsigned int)" (?CompatibleTimeSetEvent@@YGIIIP6GXIIKKK@ZKI@Z)rnstrmbaseD.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __imp___vsnprintf referenced in function "void __cdecl DbgBreakPoint(char const *,int,char const *,...)" (?DbgBreakPoint@@YAXPBDH0ZZ)rnDebug/cddareader.ax : fatal error LNK1120: 9 unresolved externalsrnBuild log was saved at "file://f:\guliverkli\src\filters\reader\cddareader\Debug\BuildLog.htm"rncddareader - 14 error(s), 4 warning(s)rn========== Build: 19 succeeded, 68 failed, 169 up-to-date, 0 skipped ==========rn难道是还有lib没有加进去?那我该怎样找到这些库呢?rn多谢赐教
LNK2019: 无法解析的外部符号
//---------------list.hrn#pragma oncern#include "stdafx.h"rn#include rnusing namespace std;rntemplate rnclass LinearListrnrnpublic:rn LinearList(int len=10);rn ~LinearList();rn bool IsEmpty() const;rn int Length() const;rn bool Find(int k,const T& x)const;rn int Search(const T& x) const;rn LinearList& Delete(int k,T& x) ;rn LinearList& Insert(int k,const T& x);rn void Output(ostream& out) const;rn friend ostream& operator <<(ostream& out,const LinearList& x); rn rnprivate:rn int length;rn T*element;rn int MaxSize;rn;rn//----------list.cpprn#include "stdafx.h"rn#include"list.h"rnrntemplate LinearList::LinearList(int len)rnrn MaxSize=len;rn element=new T[len];rn length=0;rnrntemplate LinearList::~LinearList()rnrn delete[]element;rnrntemplaternbool LinearList::IsEmpty() constrnrn return length==0;rnrntemplaternint LinearList::Length() constrnrn return length;rnrntemplaternbool LinearList::Find(int k,const T &x) constrnrn if(k<=0||k>length)rn rn cout<<"none !"<rnint LinearList::Search(const T &x) constrnrn int i;rn for(i=0;irnLinearList& LinearList::Delete(int k, T &x)rnrn if(Find(k,x))rn rn for(int i=k;irnLinearList& LinearList::Insert(int k, const T &x)rnrn if(k<1||k>length)rn cout<<"error !"<=k-1;i--)rn element[i+1]=element[i];rn element[k-1]=x;rn length++;rn return*this;rnrntemplaternvoid LinearList::Output(ostream &out) constrnrn for(int i=0;irnostream& operator <<(ostream& out,const LinearList& x) rnrn x.Output(out);rn return out;rnrnrn//-------------------------- Win32_DS3_1.cpp : 定义控制台应用程序的入口点。rn//rnrn#include "stdafx.h"rn#include "list.h"rnrnint _tmain(int argc, _TCHAR* argv[])rnrn LinearListL(5);rn cout << "Length = " << L.Length() << endl;rn cout << "IsEmpty = " << L.IsEmpty() <Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall LinearList::~LinearList(void)" (??1?$LinearList@H@@QAE@XZ),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: class LinearList & __thiscall LinearList::Delete(int,int &)" (?Delete@?$LinearList@H@@QAEAAV1@HAAH@Z),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: bool __thiscall LinearList::Find(int,int const &)const " (?Find@?$LinearList@H@@QBE_NHABH@Z),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "class std::basic_ostream > & __cdecl operator<<(class std::basic_ostream > &,class LinearList const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$LinearList@H@@@Z),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: class LinearList & __thiscall LinearList::Insert(int,int const &)" (?Insert@?$LinearList@H@@QAEAAV1@HABH@Z),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: bool __thiscall LinearList::IsEmpty(void)const " (?IsEmpty@?$LinearList@H@@QBE_NXZ),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall LinearList::Length(void)const " (?Length@?$LinearList@H@@QBEHXZ),该符号在函数 _wmain 中被引用rn1>Win32_DS3_1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall LinearList::LinearList(int)" (??0?$LinearList@H@@QAE@H@Z),该符号在函数 _wmain 中被引用[/color]
无法解析的外部符号HtmlHelp
我刚刚重装了系统,XP的,VS2008装上后建一个MFC的空工程报错:rn1>work11.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall CWinApp::HtmlHelp(unsigned long,unsigned int)" (?HtmlHelp@CWinApp@@UAEXKI@Z)rn1>work11.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall CWnd::HtmlHelp(unsigned long,unsigned int)" (?HtmlHelp@CWnd@@UAEXKI@Z)rn1>MainFrm.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall CWnd::HtmlHelp(unsigned long,unsigned int)" (?HtmlHelp@CWnd@@UAEXKI@Z)rn1>work11View.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall CWnd::HtmlHelp(unsigned long,unsigned int)" (?HtmlHelp@CWnd@@UAEXKI@Z)rn1>E:\my_program\work11\Debug\work11.exe : fatal error LNK1120: 2 个无法解析的外部命令rn我建一个Win32控制台的程序却没问题 ,不知道怎么回事,求解
无法解析的外部符号?
无法解析的外部符号 "public: bool __thiscall CWriteFile::OpenFile(class std::basic_string,class std::allocator > const &,char const *)" (?OpenFile@CWriteFile@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z),该符号在函数 "public: int __thiscall CLog::SetFile(class std::basic_string,class std::allocator > const &,char *)" (?SetFile@CLog@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAD@Z) 中被引用rnrnint CLog::SetFile( const string& FileName, char* szMode)rn rn rn CWriteFile File;rn rn assert(FileName.length() != 0);rn assert(szMode != NULL);rn if (File.OpenFile(FileName,szMode))rn rn return true;rn rn return false;rnrnrn什么情况,CWriteFile 是定义过的类怎么就无法解析?rn rnrn
无法解析外部符号
error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 __tmainCRTStartup 中被引用rn这个怎么解决呀????
无法解析的外部符号 _DEVPKEY_Device_Class
MSDN上的一个例子,用来检测未知设备,代码如下:rnrn[code=C/C++]rn#include "stdio.h"rn#include "windows.h"rn#include "setupapi.h"rn#include "devpkey.h"rnrn#pragma comment(lib, "Setupapi.lib")rnrnvoid main()rnrn HDEVINFO DeviceInfoSet;rn SP_DEVINFO_DATA DeviceInfoData;rn DWORD DeviceIndex;rnrn DeviceInfoSet = SetupDiGetClassDevs(rn NULL,rn NULL,rn NULL,rn DIGCF_ALLCLASSES | DIGCF_PRESENT);rnrn ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));rn DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);rn DeviceIndex = 0;rnrn DWORD Error;rn DEVPROPTYPE PropType /*= DEVPROP_TYPE_GUID*/;rn WCHAR DevGuid[1024];rn DWORD Size;rnrn while (SetupDiEnumDeviceInfo(rn DeviceInfoSet,rn DeviceIndex,rn &DeviceInfoData)) rn rn DeviceIndex++;rn if(!SetupDiGetDeviceProperty(rn DeviceInfoSet,rn &DeviceInfoData,rn &DEVPKEY_Device_Class,rn &PropType,rn (PBYTE)&DevGuid,rn sizeof(GUID),rn &Size,rn 0) || PropType != DEVPROP_TYPE_GUID) rnrn Error = GetLastError();rn if (Error == ERROR_NOT_FOUND)rn printf("This device has an unknown device setup class.\n");rn rn rnrn if (DeviceInfoSet) rn SetupDiDestroyDeviceInfoList(DeviceInfoSet);rn rnrnrn[/code]rnrn编译后提示:rnrn1>正在编译...rn1>main.cpprn1>正在链接...rn1>main.obj : error LNK2001: 无法解析的外部符号 _DEVPKEY_Device_Classrn1>D:\My Documents\Visual Studio 2008\Projects\Dev\Debug\DevN.exe : fatal error LNK1120: 1 个无法解析的外部命令rn1>……rnrn估计少了某个链接库,但是少了哪个呢?MSDN上也没查到。或者还是其他原因?rn
无法解析的外部符号 _gsl_rng_mt19937
xform.obj : error LNK2001: 无法解析的外部符号 _gsl_rng_mt19937rn在工程的属性的VC++目录和链接器都已经准备填好了库的路径和lib,但是还是出现这样的问题 请问这到底是怎么回事?
LNK2019 无法解析的外部符号!!!
用VS2010 生成一个SDI程序,然后添加视图双机消息 ,创建一个对话框资源,然后添加类,在视图中双机弹出。rnvoid CTestDlg0801View::OnLButtonDblClk(UINT nFlags, CPoint point)rnrn // TODO: 在此添加消息处理程序代码和/或调用默认值rnrn COwnDialog dlg;rn dlg.DoModal();rn CView::OnLButtonDblClk(nFlags, point);rnrnrn错误 3 error LNK1120: 2 个无法解析的外部命令 D:\C++ox\TestDlg0801\Debug\TestDlg0801.exe 1 1 TestDlg0801rnrn错误 2 error LNK2019: 无法解析的外部符号 "public: __thiscall COwnDialog::COwnDialog(class CWnd *)" (??0COwnDialog@@QAE@PAVCWnd@@@Z),该符号在函数 "public: void __thiscall CTestDlg0801View::OnLButtonDblClk(unsigned int,class CPoint)" (?OnLButtonDblClk@CTestDlg0801View@@QAEXIVCPoint@@@Z) 中被引用 D:\C++ox\TestDlg0801\TestDlg0801View.obj TestDlg0801rnrnrn错误 1 error LNK2019: 无法解析的外部符号 "public: virtual __thiscall COwnDialog::~COwnDialog(void)" (??1COwnDialog@@UAE@XZ),该符号在函数 "public: void __thiscall CTestDlg0801View::OnLButtonDblClk(unsigned int,class CPoint)" (?OnLButtonDblClk@CTestDlg0801View@@QAEXIVCPoint@@@Z) 中被引用 D:\C++ox\TestDlg0801\TestDlg0801View.obj TestDlg0801rnrn真是奇怪了。什么文件都不缺啊rn
提示无法解析的外部符号?
自己写了个库,编译成功。rn然后新建了个项目,在项目-》属性-》链接器-》常规和连接器-》输入中分别添加了库的路径和库名rn仍然提示无法解析的外部符号,rn请问是什么原因?
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法