error LNK2019: unresolved external symbol

原创 2010年08月01日 03:29:00

error LNK2019: unresolved external symbol

(2007-05-28 10:23:43)

错误是解决了一个又一个,记下来权当是经验了。
共有11个类似的错误,我列出1个来。
模板:
template<class T>
void Blur(T* SourceImage, const int Width, const int Height);
 
template void
Blur<unsigned char>
(unsigned char*, const int, const int);
 
但链接时出错
Linking...
Image_demoDoc.obj : error LNK2019: unresolved external symbol "void __cdecl Blur<unsigned char>(unsigned char *,int,int)" (??$Blur@E@@YAXPAEHH@Z) referenced in function "void __cdecl OnBlur(struct HWND__ *)" (?OnBlur@@YAXPAUHWND__@@@Z)
Release/Image_demo.exe : fatal error LNK1120 : 11 unresolved externals
 
折腾了4个小时,终于搞出来了。当然类似的错误百度搜索一大堆。我也查出原因了:模板声明和实现要放在同一文件夹中 ,我原先把声明放在了.h文件中,把实现放在了.cpp文件中。改了后运行还是出错。真是奇怪!我还以为是什么大的错误。后来重新启动了下VS2005就好了。原来我修改后,编译环境还以以前就的中间文件来编译,怪不得改了后还是没用。现在发现,有时候这VC环境还是有点“反应慢”。

其实,LNK2019错误一般都是 compile是能找到相应的header (.h)文件,但链接时找不到相应的 lib 库文件(也含dll文件)。如 昨天调试时再linux下 pointcloudviewerJ 项目能compile 和link 正确,但在 windows下设置了项目 属性 后 能compile 但link 时 报错如下:
1>Linking...
1>LINK : D:/Experiment_Data/Microsoft VC9/PointCloudViewerJ/Debug/PointCloudViewerJ.exe not found or not built by the last incremental link; performing full link
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall osgGA::StateSetManipulator::StateSetManipulator(class osg::StateSet *)" (__imp_??0StateSetManipulator@osgGA@@QAE@PAVStateSet@osg@@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall osgGA::TrackballManipulator::TrackballManipulator(void)" (__imp_??0TrackballManipulator@osgGA@@QAE@XZ) referenced in function _main
。。。。。。。。
D:/Experiment_Data/Microsoft VC9/PointCloudViewerJ/Debug/PointCloudViewerJ.exe : fatal error LNK1120: 11 unresolved externals
这就是说一个link失败,使由于osgGA::StateSetManipulator::............的unresolved external symbol,也就是说 一定是osgGA库出了问题 。check 项目属性,发现 Additional Dependencies 中没有osgGA.lib  ,  所以 加上 osgGAd.lib(因为用的是Debug版)。rebuild 项目。compile 和link 通过。
另:有时候前面函数的声明 与 后面的  函数的定义 时的参数类型不同时,compile能通过,但link会出现LNK2019错误!

关于error LNK2019::Unresolved External Symbol * Referenced In Function..解决办法 2

前几天我转了一篇关于error LNK2019::Unresolved External Symbol * Referenced In Function..解决办法的博客,但我自己后来按照上面的办法并...
  • baidu_24736703
  • baidu_24736703
  • 2016年05月17日 22:13
  • 3885

初学opengl(一)第一个opengl程序及error LNK2019: unresolved external symbol的解决

操作系统:Windows 8.1; 开发环境:Visual Studio 2013 opengl的安装非常简单,很多人写博客介绍,随便找一个跟着做就差不多。 安装完成后,找了一个同学写好的工程拿来...
  • u011636440
  • u011636440
  • 2016年03月01日 15:02
  • 1421

解决Error LNK2019: unresolved external symbol

The problem with your project is that you are using a “C” style exported library in your C++ project...
  • u010309553
  • u010309553
  • 2016年09月15日 13:53
  • 176

Error LNK2019:Unresolved External Symbol 解决方案

参考:http://www.educity.cn/wenda/351518.html Error LNK2019:Unresolved External Symbol *** Referenced ...
  • rudy_axle
  • rudy_axle
  • 2014年12月26日 18:07
  • 7284

error LNK2019:unresolved external symbol的解决方法

我们都知道,当我们在链接程序的时候,出现了如下错误,那是代表,程序没有找到在.h文件中定义的函数的实现。 error LNK2019:unresolved external symbol   有...
  • zxj1988
  • zxj1988
  • 2013年03月06日 16:33
  • 12767

错误 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartu

当出现这种错误时,你首先要做得是检查代码拼写错误 ,特别是字母拼写顺序错误、{ }不匹配,有很大概率是这种低级错误。接下来才考虑其它问题:   产生这个问题可能的原因 1, 你用vc建了一个控制台程序...
  • neuqbingoye
  • neuqbingoye
  • 2012年02月27日 20:07
  • 21525

C++ error LNK2019: "unresolved external symbol"解决方法

1>  LINK : D:\code\OpenGLTest\Debug\OpenGLTest.exe not found or not built by the last incremental li...
  • jd_19900903
  • jd_19900903
  • 2014年05月19日 16:41
  • 5251

C++故障排除-VS2010 error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmai

报错:VS2010  error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTS...
  • breeze5428
  • breeze5428
  • 2015年09月13日 23:40
  • 2258

error LNK2019: unresolved external symbol "__declspec(dllimport) void 遇到的问题以及解决办法

使用的库为C开发,原来是静态链接的库文件。后来增加导出符号:#ifdef EXPORTS#define EXTERN(type)  __declspec(dllexport) type#else#de...
  • aikker
  • aikker
  • 2008年11月12日 16:45
  • 4330

error LNK2001: unresolved external symbol "__declspec(dllimport) public: char * _

这个问题我遇到过,原因是运行期库不统一,你试试改变project> settings> c/c++> code   generation> use   run-time   library中的设置,总...
  • haihong84
  • haihong84
  • 2012年04月10日 15:35
  • 1903
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:error LNK2019: unresolved external symbol
举报原因:
原因补充:

(最多只允许输入30个字)