VC: error LNK2019:unresolved external symbol *** referenced in function ***的解决方案

当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进行定义,则会出现为“解决的外部符号”(unresolved external symbol )错误。另外,当一个函数调用了外部的一个库文件中的函数,但是在当前project的properties中并没有将所依赖的(dependent)库文件包含进来时,也会出现这种错误。

综上,当一个solution在linking时找不到所涉及到的函数的定义时就会出现“unresolved external symbol ”错误。

例如,下面是调用rapi的库文件rapi.lib中的函数时,由于没有将rapi.lib包含进来而导致的链接错误。

1>Linking... 
WMFileSync.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "public: virtual long __stdcall CWMFileSync::IsFileExists(wchar_t *)" ([email protected]@@[email protected])

【解决方案】

1. Project -> ** Properties... -> Configuration Properties -> Linker -> Input -> Additional Dependencies -> rapi.lib

另外,在此之前,还需添加rapi库的相应目录:Tools -> Options -> Projects and Solutions -> VC++ Directories -> Show Directories for -> 在Include files中添加C:\Program Files\Matrox Imaging\rapi\Include 以及 Tools -> Options -> Projects and Solutions -> VC++ Directories -> Show Directories for -> 在Library files中添加C:\Program Files\Matrox Imaging\rapi\LIB。添加目录的目的是为了使VC在调用相应库文件时不必总是使用绝对地址,VC可以通过文件名在所包含的目录中进行搜索。这样,前面的rapi.lib就不必使用绝对地址了。

【缺点】可移植性差,如果将原工程中的源文件和头文件中的内容copy下来重新建立该工程时(例如:在电子书或网络上找到的程序),仍需自己在工程中添加目录及所需的库文件。

2. 在程序前加入#pragma commet(lib, "rapi.lib")也可以达到相同的效果。

【此博文为网上转载】

时间: 2024-08-09 07:30:17

VC: error LNK2019:unresolved external symbol *** referenced in function ***的解决方案的相关文章

C++ win32 dll 引用外部CLR,加载托管程序集异常-Error 10 error LNK2019: unresolved external symbol _CLRCreateInstancet

异常: Error 10 error LNK2019: unresolved external symbol [email protected] referenced in function "unsigned long __stdcall StartTheDotNetRuntime(void *)" ([email protected]@[email protected]) E:\C++\VC项目\NativeDll\NativeDll.obj NativeDll 解决措施: nat

C++ Error: error LNK2019: unresolved external symbol

在currennt工程中新添加了一个文件x.cu与x.hpp,最后编译整个工程的时候就出现了这个问题: error LNK2019: unresolved external symbol 这是链接错误,表示没有找到编译好的二进制库文件~ 这很诡异,因为我并没有引用什么第三方的lib(这很容易出现上述问题),编译器提示出现问题的代码是我自己写的啊! 又感觉脊背发凉……… 最后不断排查,几乎把所有可能出错的代码都注释了,最后查到问题了,原来是template没有实例化= = 并非没有找到编译好的二进

error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall CADOConn::CADOConn(void)"解决

背景:在MFC程序中写了两个project,其中一个project需要引用win32 project(ADOConn). 1. __thiscall实为noise信息,重点是之后的CADOConn::CADOConn(void),原因为CADOConn有一个默认的构造函数,只有声明没有实现,需在.cpp文件中实现. 2. VS Configuration Properties下列三项要设置正确. C/C++ ->General->Additional Include Directories 指

error LNK2001: unresolved external symbol "int g_cTemplates" ([email protected]@3HA)(转)

原文转自:http://blog.sina.com.cn/s/blog_639a2ad70101kpen.html 编译directshow若干问题的解决 1.安装好windows sdk,进入directshow目录下面的directshow\baseclasses,打开baseclasses.sln项目文件,编译,Debug目录下生成strmbasd.lib 2.新建vc filter工程,到工程属性->c/c++下添加包含目录,此步骤为添加directx头文件和directshow头文件,

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

在创建MFC项目时,如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如我今天遇到的: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 解决方法: 控制台项目要使用windows子系统, 而不是console, 设置:[Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/

officeView.obj : error LNK2001: unresolved external symbol [email protected]

vc编译时出现 Linking... officeView.obj : error LNK2001: unresolved external symbol [email protected] Debug/office.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. 的错误 原因是缺少lib文件 解决办法: 加上这句#pragma comment(lib, "shlwapi.lib."

(转载)浅析error LNK2001: unresolved external symbol "public: __thisc...

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时, 编译都已通过.产生连接错误的原因非常多,尤其LNK2001错误,常常使人不 明其所以然.如果不深入地学习和理解VC++,要想改正连接错误LNK2001非 常困难. 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolved   external   symbol   “symbol”(不确定的外部“符号”). 如果连接程

VC6.0 error LNK2001: unresolved external symbol _main解决办法

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过.产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然.如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难. 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolved external symbol "symbol"(不确定的外部"符号").

OpenCv error :unresolved external symbol(链接库没有加上)

Error 如下:Linking...: error LNK2001: unresolved external symbol _cvDestroyWindow: error LNK2001: unresolved external symbol _cvLoadImage: error LNK2001: unresolved external symbol _cvReleaseCapture: error LNK2001: unresolved external symbol _cvRelease