VC: error LNK2019:unresolved external symbol *** referenced in function ***的解决方案
- 博客分类:
- c++
当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进行定义,则会出现为“解决的外部符号”(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 _CeFindClose@4 referenced in function "public: virtual long __stdcall CWMFileSync::IsFileExists(wchar_t *)" (?IsFileExists@CWMFileSync@@UAGJPA_W@Z)
【解决方案】
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")也可以达到相同的效果。
发表评论
-
const 与static 关键词在c 和 c++中的作用
2012-08-11 11:49 998一.C语言中的const ... -
error LNK2005 and error LNK2019
2012-08-09 23:08 1174error LNK2005 and error LNK2019 ... -
LIBCD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSV
2012-08-07 09:20 1442LIBCD.lib(crt0dat.obj) : error ... -
在VS2010下配置VC++ Directories
2012-08-07 08:29 10981:可以 在“class View” 面板 -> 右 ... -
零星笔记,待整理
2010-11-01 13:00 510//用 getline 函数从输入读取整行内容。然后为 ... -
stdcall cdecl fastcall thiscall naked call的具体含义
2010-10-30 18:54 983在C语言中,假设我们有 ... -
#define总结 (网上资料汇集)
2010-10-30 08:06 7441. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号 ... -
(zz)编译与使用Qt4,Visual Studio Express 2008
2010-10-14 22:35 1409一、Qt版本 我现在用的是4.5.2。好像前段时间4.6出来 ... -
strcat 内部实现
2010-09-21 00:43 1828char * strcat(char * dest, ... -
deep copy & shallow copy
2010-09-15 19:27 852A shallow copy of an object cop ... -
reinterpret_cast的本质(转)
2010-09-14 23:15 1644先看看下面的代码: #include <iostr ... -
C++ 经典书籍
2010-09-14 16:18 1723下载地址: http://www.51cnnet.net/di ... -
内存对齐的规则以及作用
2010-09-14 00:14 709首先由一个程序引入话 ... -
[转]C++ reinterpret_cast,const_cast等 显式类型转换总结
2010-09-13 23:23 1053#include<iostream.h> ... -
C++提供了四种新的类型强制
2010-09-13 23:13 719static_cast const_cast reinte ... -
C++著名程序库的比较和学习经验
2010-09-13 19:30 8611、C++各大有名库的介绍——C++标准库 2、C++各大有名 ... -
c++ library and resource List
2010-09-13 18:56 9301,前言 无数次听 ... -
C++中操作符operator的两种用法
2010-09-12 02:23 11481.operator overloading C++可能通过o ... -
两种自动类型转换:构造函数与operator
2010-09-12 02:23 928如果有两个对象:one, two, 要想把one转换成为two ... -
C++中的类拷贝构造函数和模板拷贝构造函数
2010-09-11 20:53 3035类(包括模板类)构造函数是真实的构造函数;然而模板构造函数,其 ...
相关推荐
解决 error LNK2001: unresolved external symbol 在编译VC项目时,经常会遇到error LNK2001: unresolved external symbol的错误,这个错误是由于缺少某些库文件而引起的。在这里,我们总结了三种常见的情形,并...
解决报错Error LNK2001:unresolved external symbol
解决 VC6.0 中运行错误 unresolved external symbol _WinMain@16 在使用 VC6.0 进行编程时,可能会遇到一个常见的错误:unresolved external symbol _WinMain@16。这是一个链接错误,出现这种错误的原因是因为 VC...
### [Linker Error] Unresolved External 问题的解决方法 在软件开发过程中,尤其是在使用编译器进行项目构建时,可能会遇到“未解析外部符号”(Unresolved External)的链接错误。这类错误通常出现在编译完成后,...
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crt
### vc中error LNK2001 resolved external symbol _WinMain@16的解决方法 #### 一、问题描述 在使用Visual C++ (VC) 编译C++项目时,可能会遇到`error LNK2001: unresolved external symbol _WinMain@16`的错误...
visual c++报error LNK2001 unresolved external symbol错就是因为你...
error LNK2001 unresolved external symbol _GetObjectContext.zip
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: ...
如果出现以下错误: ...1>libcurld.lib(openssl.obj) : error LNK2019: 无法解析的外部符号 _sk_num,该符号在函数 _cert_stuff 中被引用 ............... 则应添加对 ssleay32.lib 和 libeay32.lib 的引用
unresolved external symbol,multiply defined symbols found 这是一个困扰C语言新手的问题 #include没毛病 但是用多了就出毛病 看代码,哪都没毛病 在B中#include A 在A中#include B 此时build就会报unresolved ...
player.obj : error LNK2001: unresolved external symbol _IID_IVideoWindow player.obj : error LNK2001: unresolved external symbol _IID_IMediaControl 这是因为链接器没有找到合适的.lib文件。两种办法: ...
解决报错LINK : fatal error LNK1000补丁 返回错误:LINK : fatal error LNK1000: Internal error during IncrBuildImage
错误提示:** `nafxcwd.lib(thrdcore.obj):error LNK2001: unresolved external symbol __beginthreadex` 和 `nafxcwd.lib(thrdcore.obj):error LNK2001: unresolved external symbol __endthreadex` **说明:** 当...
在VC++编程环境中,当你遇到"error LNK2019: 无法解析的外部符号"的错误时,这通常意味着编译器在链接阶段找不到某个函数或变量的定义。这个错误是链接器(Linker)发出的,因为它在已编译的对象文件或库中找不到在...
解决安装vs2012后vs2010 LINK : fatal error LNK1123: failure during conversion to COFF Wrong version: 03/18/2010 01:16 PM 31,048 cvtres.exe Correct version: 02/21/2011 06:03 PM 31,056 cvtres.exe
error LNK2005: DllMain already defined in corelibc.lib(dllmain.obj)的解决方案
当项目设置为使用Windows子系统,但代码中使用了控制台应用程序的入口点,就会出现类似`libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol_main`的错误。此时,应将项目属性中的“/subsystem:...
在创建 MFC 项目时,如果没有使用 MFC AppWizard 向导,那么在编译时可能会产生很多连接错误,例如 error LNK2001: unresolved external symbol _main。这种错误的解决办法是将 Windows 子系统设置正确。可以按照...
LNK2019错误是Microsoft Visual Studio 2008 (VS2008)在编译和链接过程中常见的一个链接器错误,通常表示在编译的目标代码中引用了一个未解析的外部符号,也就是说,链接器无法找到该符号在任何输入对象文件或库中的...