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

转载 2014年05月19日 16:41:16
1>  LINK : D:\code\OpenGLTest\Debug\OpenGLTest.exe not found or not built by the last incremental link; performing full link
1>OpenGLTest.obj : error LNK2019: unresolved external symbol "void __cdecl build_rotmatrix(float (* const)[4],float * const)" (?build_rotmatrix@@YAXQAY03MQAM@Z) referenced in function "void __cdecl recalcModelView(void)" (?recalcModelView@@YAXXZ)
1>OpenGLTest.obj : error LNK2019: unresolved external symbol "void __cdecl add_quats(float *,float *,float *)" (?add_quats@@YAXPAM00@Z) referenced in function "void __cdecl animate(void)" (?animate@@YAXXZ)
1>OpenGLTest.obj : error LNK2019: unresolved external symbol "void __cdecl trackball(float * const,float,float,float,float)" (?trackball@@YAXQAMMMMM@Z) referenced in function "void __cdecl motion(int,int)" (?motion@@YAXHH@Z)
1>D:\code\OpenGLTest\Debug\OpenGLTest.exe : fatal error LNK1120: 3 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.47

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

在vs2010中调试程序时,出现以上错误。

查了很多资料,说是没有添加相应的lib到工程属性配置中。可是我已经添加过了,出现的这样错误。

经过查找资料,发现一篇很有用的文章,提示说是由于在C++中使用用C编写的文件导致的错误。

请参考:

http://www.cppblog.com/Dutyboy/archive/2010/11/19/134082.html

The problem with your project is that you are using a "C" style exported library in your C++ projects. When the compiler generates mangled names for C++ functions, they are different from unmangled names generated by the C compiler and hence the C++ compiler will not be able to link with the methods imported from coredll.lib.

The solution to this problem is - while including the header windbase_edb.h, you can explicitly tell the compiler that all functions included from this header are "C" style functions by changing your inclusion as below.

extern "C"
{
#include 
}

或者

#ifndef _C_H_

#define _C_H_

#ifdef __cplusplus    //__cplusplus是双下划线

extern "C" {

#endif

extern int add(int, int);

#ifdef __cplusplus

}

#endif

#endif /* _C_H_ */


开始搜到这篇文章,看到是英文,所以还以为是大众的答案呢,到后面仔细一看,才知道不一样。

say to me:以后看到英文的文章,不能抵触哦,要好好看。。


VC引入lib库并解决连接错误unresolved external symbol "__declspec(dllimport) const DllClass::`vftable'" (__imp_?

链接库分为静态链接库和动态链接库,静态链接库只有一个.lib文件,而动态链接库则有一个.lib文件和.dll文件;静态链接库的.lib文件里面有函数真正实现的机器码,而动态链接库的.lib只有函数的符...
  • u010459100
  • u010459100
  • 2016-01-18 15:55:33
  • 3032

SM2算法第十六篇:解决 unresolved external symbol 无法解析 _send@16

(1) vc网络编程中遇到一个编译问题,原来是少了WSOCK32.LIB。 在 project-->settings-->Link-->Object/Library modules 中加入库...
  • qq_30866297
  • qq_30866297
  • 2016-05-20 00:29:27
  • 1155

C++错误unresolved external symbol _WinMain@16

C++错误unresolved external symbol _WinMain@16  2008-10-26 13:00:28 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
  • u012317155
  • u012317155
  • 2014-02-19 15:36:21
  • 2345

解决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:24
  • 566

关于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:04
  • 4481

debug : error LNK2019: unresolved external symbol compress referenced in function "public: int __cde

序帮别人解决问题。 他升级了一个vc6的dll工程到vs2012, 编译不过。应该是他移植的有问题。 我先将vc6的dll工程直接用vs2015打开升级,消掉编译警告和错误后,新建了一个d...
  • LostSpeed
  • LostSpeed
  • 2017-07-27 01:19:39
  • 284

error LNK2019:unresolved external symbol的解决方法

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

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

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

error LNK2019: unresolved external symbol

error LNK2019: unresolved external symbol(2007-05-28 10:23:43) 转载   分类:Programe(C/C++/VC/....
  • jtop0
  • jtop0
  • 2010-08-01 03:29:00
  • 64068

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

当出现这种错误时,你首先要做得是检查代码拼写错误 ,特别是字母拼写顺序错误、{ }不匹配,有很大概率是这种低级错误。接下来才考虑其它问题:   产生这个问题可能的原因 1, 你用vc建了一个控制台程序...
  • neuqbingoye
  • neuqbingoye
  • 2012-02-27 20:07:44
  • 22296
收藏助手
不良信息举报
您举报文章:C++ error LNK2019: "unresolved external symbol"解决方法
举报原因:
原因补充:

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