-
error LNK2019: 无法解析的外部符号
2018-08-06 12:50:3811_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: __cdecl cv::VideoCapture::VideoCapture(void)” (??0VideoCapture@cv@@QEAA@XZ),该符号在函数 main 中被引用 1>11_Object...错误描述
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: __cdecl cv::VideoCapture::VideoCapture(void)” (??0VideoCapture@cv@@QEAA@XZ),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: virtual __cdecl cv::VideoCapture::~VideoCapture(void)” (??1VideoCapture@cv@@UEAA@XZ),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: virtual bool __cdecl cv::VideoCapture::open(int)” (?open@VideoCapture@cv@@UEAA_NH@Z),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 "public: virtual bool __cdecl cv::VideoCapture::isOpened(void)const " (?isOpened@VideoCapture@cv@@UEBA_NXZ),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “int __cdecl cv::waitKey(int)” (?waitKey@cv@@YAHH@Z),该符号在函数 main 中被引用
1>F:\DeskTop\x64\Debug\人脸识别.exe : fatal error LNK1120: 5 个无法解析的外部命令问题分析
error LNK2019: 无法解析的外部符号
一般是源代码里用了第三方库,但工程没有添加相应的库目录解决方法
依次选择:项目–>属性
然后,VC++目录–>库目录–>编辑
点击空白处,然后点击“…”,添加相应的路径即可
还没有完,然后点击链接器–>输入–>附加依赖项–>编辑,添加用到的库文件的名称
补充
对于怎么知道自己缺少什么头文件和库文件这个问题,不熟悉项目的新手很是头疼。有一些经验,虽然很笨,供大家参考吧。- 双击错误信息,找到出错的地方,把出错的位置复制到百度搜索一下,寻找他的头文件和库,出错的地方可能是宏定义、函数或变量, 不要大段复制,只复制名称。
- 有时可能双击不会跳转到出错的地方,就直接在代码里寻找标红的地方,可能有好几个文件,都要找,然后再根据标红的部分搜索.h和.lib。
- 一般.h和.lib是成对的,有lib一般都会有相应的h,但.h头文件可以单独存在。
小结
用第三方库时,一般还会遇到 “无法打开包括文件: “opencv2/objdetect/objdetect.hpp”: No such file or directory "的错误
fatal error C1083: 无法打开包括文件: “opencv2/objdetect/objdetect.hpp”: No such file or directory -
无法解析的外部符号 1 个无法解析的外部命令
2017-02-12 03:22:57#include ... error LNK2019: 无法解析的外部符号 "public: __thiscall student::student(void)" (??0student@@QAE@XZ),该符号在函数 _main 中被引用 fatal error LNK1120: 1 个无法解析的外部命令 -
LNK2001: 无法解析的外部符号的几种情况
2018-11-01 09:01:51error LNK2001: 无法解析的外部符号无法解析几种情况: 1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _printf 已经在 libcurl.lib(pqueue.obj) 中定义 1>MSVCRT.lib(MSVCR90.dll) :...一般来说,我们引用第三方库时,需要进行指定依赖项配置,若没有进行相关配置,则编译器会出现“LNK2001: 无法解析的外部符号”错误。
这个是最常见的问题,具体步骤:
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项若已经按照上述步骤进行配置,但编译器还是报错,可能情况如下:
1.编译lib库和引用lib库平台不一致
lib库采用的编译平台和引用该lib的工程的编译平不兼容导致的。比如项目采用vs2008编译,而该lib是用2010编译的,亦或者项目采用vs2015平台,而lib是vs2008编译的也可能导致链接失败。
2.编译lib库和引用lib库选项不一致情况
1、一个lib库采用“多线程 DLL (/MD)”配置,而另外一个项目采用“多线程(/MT)”编译配置
2、一个lib库采用“使用 Unicode 字符集”配置,而另外一个项目采用“使用多字节字符集”编译配置
3、一个lib库采用选择“release 版本 ”配置,而另外一个项目采用选择 “debug 版本 ”编译配置
4、一个lib库采用“wind32平台 ”配置,而另外一个项目采用“wind64平台 ”编译配置3.没有添加指定预编译宏
在使用curl静态库时,却遇到了编译链接错误:
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_init
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_perform
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup解决方法是,在自己的项目属性中添加一个预编译宏,CURL_STATICLIB,
为了避免遇到以上问题建议:
1、引用第三方库时,确认lib库是否使用相同编译平台
2、确认编译选项是否一致。比如运行时库和字符集
3、若需要则添加指定编译宏
4、添加附加库目录和附加依赖项 -
无法解析的外部符号
2019-08-11 09:42:40问题描述:无法解析的外部符号_WinMain@16,该符号在函数_tmairCRTStartup中被引用 解决方案:将tchar.h这个头文件给包含进去问题描述:无法解析的外部符号_WinMain@16,该符号在函数_tmairCRTStartup中被引用
解决方案:将tchar.h这个头文件给包含进去
-
无法解析外部符号
2017-11-08 11:23:18参考博客无法解析的外部符号考虑可能的原因: [0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包. [1]只写了类声明,但还没有写实现类,造成调用时无法解析 [2]声明和定义没有...本人在写qt工程的时候遇到无法解析外部符号
原因:只写了类声明,但还没有写实现类,造成调用时无法解析。
解决方法,把还没有实现类的声明给注释掉。参考博客无法解析的外部符号
考虑可能的原因:
[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.
[1]只写了类声明,但还没有写实现类,造成调用时无法解析
[2]声明和定义没有统一,造成链接不一致,无法解析
[3]没有在项目属性页的链接器的命令行选项加入相应的类包。
[4]没有在c++包含目录和库目录加入相应的类包路径
[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件
[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。
[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库
[8]出现如下错误的原因一般是动态库没有包进来。__imp
ProjectRun.obj : error LNK2019: 无法解析的外部符号 __imp__StartHistoryLocalModule,该符号在函数 “protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)” (?DoStart@CProjectRun@HiRTDB@@MAEHXZ) 中被引用
[9]error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW
工程属性,C/C++,代码生成,运行时库选择MDd,
[9]无法解析的外部符号”_declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)” (__imp?GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseReadValues@2@@Z),该符号在函数”public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)” (?Get@CStringImpl@HiRTDB@@QAEHHABUSStringReadProps@2@AAUSStringReadValues@2@@Z) 中被引用
原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。 -
n个无法解析的外部命令 和 无法解析的外部符号
2019-05-16 11:04:43出现**“n个无法解析的外部命令”**...无法解析的外部符号,也是由于配置没配好。 点击 项目----属性----VC++目录----包含目录|库目录 包含目录里面,添加 C:\opencv\build\include C:\opencv\build\include\ope... -
无法解析的外部符号的几种可能
2020-01-02 21:20:01无法解析的外部符号的几种可能 无法解析的外部符号的几种可能(lib方面的) -
pcl 无法解析的外部符号
2015-08-04 15:12:23pcl 无法解析的外部符号 -
libcurl无法解析的外部符号
2020-11-19 10:03:47libcurl无法解析的外部符号 编译成静态库,引用此静态库时出现多个“无法解析的外部符号”问题,解决办法: 1.确保curl的头文件已添加和包含 2.确保libcurld.lib 或 libcurl.lib已经引用,且同时也引用了wldap32.... -
无法解析的外部符号 LZ4_setStreamDecode
2021-03-25 11:26:43无法解析的外部符号 LZ4_setStreamDecode问题表现解决方法 问题表现 VS2013,使用pcl/kdtree/kdtree_flann.h文件,报错: 无法解析的外部符号 LZ4_resetStreamHC 无法解析的外部符号 LZ4_setStreamDecode 无法解析的... -
无法解析的外部符号汇总
2018-01-06 11:20:431>WinMain.obj : error LNK2019: 无法解析的外部符号 __imp__DispatchMessageW@4,该符号在函数 _WinMain@16 中被引用 1>WinMain.obj : error LNK2019: 无法解析的外部符号 __imp__TranslateMessage@4,该符号在... -
无法解析的外部符号 LZ4_resetStreamHC
2020-11-11 09:52:29无法解析的外部符号 LZ4_resetStreamHC 无法解析的外部符号 LZ4_setStreamDecode 无法解析的外部符号 LZ4_decompress_safe_continue 无法解析的外部符号 LZ4_decompress_safe 无法解析的外部符号 LZ4_compress_HC_... -
关于“无法解析的外部符号”与“无法解析的外部命令”
2020-02-04 19:22:47此段代码报错:无法解析的外部符号option1, option2, option3, option4 ``` #include extern int score; result() { if (score == 4)printf("你对待感情的态度可谓是妥妥的浪啊。因为你的不羁放纵... -
无法解析的外部符号,无法解析的外部命令
2017-03-29 11:38:001.这个是因为有相关的lib包没有被引用进去 解决办法: 1. 2. 转载于:https://www.cnblogs.com/hcfan/p/6638980.html