-
无法解析外部符号
2017-11-08 11:23:18本人在写qt工程的时候遇到无法解析外部符号 原因:只写了类声明,但还没有写实现类,造成调用时无法解析。 解决方法,把还没有实现类的声明给注释掉。参考博客无法解析的外部符号考虑可能的原因: [0]出现无法解析...本人在写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) 中被引用
原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。 -
vs2015无法解析外部符号__imp__fprintf
2016-11-19 16:08:57无法解析外部符号使用vs2015编译ffmpeg的一个小项时,出现了__imp__fprintf和__imp____iob_func 的错误,google了一下,有的人 建议下载SDL源码重新编译一下,当然这个方案非常不科学。所以又继续搜,终于有所发现。
这是老外的原话:
In visual studio 2015, stdin, stderr, stdout are defined as follow :
#define stdin (__acrt_iob_func(0)) #define stdout (__acrt_iob_func(1)) #define stderr (__acrt_iob_func(2))
But previously, they were defined as:
#define stdin (&__iob_func()[0]) #define stdout (&__iob_func()[1]) #define stderr (&__iob_func()[2])
So now __iob_func is not defined anymore which leads to a link error when using a .lib file compiled with previous versions of visual studio.
To solve the issue, you can try defining
__iob_func()
yourself which should return an array containing{*stdin,*stdout,*stderr}
.Regarding the other link errors about stdio functions (in my case it was
sprintf()
), you can add legacy_stdio_definitions.lib to your linker options.答题意思就是stdin, stderr, stdout 这几个函数vs2015和以前的定义得不一样,所以报错。
解决方法呢,就是使用{*stdin,*stdout,*stderr}数组自己定义__iob_func()
其实就是下边这样。
extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }
然后__imp__fprintf的解决方法就是在链接器输入lib里加上legacy_stdio_definitions.lib这个LIBvs2015无法解析外部符号__imp__fprintf
#pragma comment(lib, "lib/legacy_stdio_definitions.lib")
#pragma comment( lib, "lib/libtiff.lib") -
VS2015无法解析外部符号
2016-12-06 12:39:22在使用VS编辑C++时,遇到了无法解析外部符号的错误 严重性 代码 说明 项目 文件 行 错误 LNK2019 无法解析的外部符号 "public: __thiscall Employee::Employee(void)" (??0Employee@@QAE@XZ),该符号在...在使用VS编辑C++时,遇到了无法解析外部符号的错误
严重性 代码 说明 项目 文件 行
错误 LNK2019 无法解析的外部符号 "public: __thiscall Employee::Employee(void)" (??0Employee@@QAE@XZ),该符号在函数 "public: __thiscall manager::manager(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??0manager@@QAE@HV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用 Process_four F:\C++\Process_four\Process_four\Process_four.obj 1严重性 代码 说明 项目 文件 行
错误 LNK2019 无法解析的外部符号 "public: __thiscall Employee::~Employee(void)" (??1Employee@@QAE@XZ),该符号在函数 __unwindfunclet$??0manager@@QAE@HV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$1 中被引用 Process_four F:\C++\Process_four\Process_four\Process_four.obj 1网上找了下解决方法,收藏一个http://blog.csdn.net/enotswn/article/details/5934938
后来发现是虚函数写的有问题
错版:
class Employee { protected: int No; string name; float salary; static int totalNo; // 自动计算员工编号 public: Employee() { ++Employee::totalNo; }//自动计算员工编号,姓名从键盘输入,工资初值为0 ~Employee() { --Employee::totalNo; } virtual void pay(); //计算月薪 virtual void display(); //显示人员信息 };
int No; string name; float salary; static int totalNo; // 自动计算员工编号 public: Employee() { ++Employee::totalNo; }//自动计算员工编号,姓名从键盘输入,工资初值为0 ~Employee() { --Employee::totalNo; } virtual void pay(); //计算月薪 virtual void display(); //显示人员信息 };正确:
class Employee { protected: int No; string name; float salary; static int totalNo; // 自动计算员工编号 public: Employee() { ++Employee::totalNo; }//自动计算员工编号,姓名从键盘输入,工资初值为0 ~Employee() { --Employee::totalNo; } virtual void pay() = 0; //计算月薪 virtual void display() = 0; //显示人员信息 };
class Employee { protected: int No; string name; float salary; static int totalNo; // 自动计算员工编号 public: Employee() { ++Employee::totalNo; }//自动计算员工编号,姓名从键盘输入,工资初值为0 ~Employee() { --Employee::totalNo; } virtual void pay(){}//计算月薪 virtual void display(){}//显示人员信息 };
问题在于自己没有分清虚函数和纯虚函数的使用方法。
-
关于无法解析外部符号的错误
2019-11-10 19:23:12无法解析外部符号,表面意思还是比较清楚的。 但当出了问题的时候呢,就不太好解决了。 最常出现问题的原因: 1.没有包含头文件 2.没有包含库文件 3.静态成员变量没有在类外定义 这里,我主要想说的是类中静态...无法解析外部符号,表面意思还是比较清楚的。
但当出了问题的时候呢,就不太好解决了。
最常出现问题的原因:
1.没有包含头文件
2.没有包含库文件
3.静态成员变量没有在类外定义
这里,我主要想说的是类中静态成员变量的问题。
为啥我们没有在类外定义静态成员变量就会报这种错误呢。
分析一下编译器对静态成员变量的处理流程,相信大家就会明白了。
1.大家应该都知道静态变量是在编译期就分配空间的。当编译器编译程序的时候,不会查看类中的静态成员变量,或者说是碰到了也不会有反应,只会对类外发现的静态变量进行内存分配。为什么要这样呢?不清楚,大家可以考虑考虑,相信编译器这样做一定有他的理由。
2.如果没在类外定义,编译器就不会在分配空间。所以呢,当程序运行的时候,类中的声明的这个静态变量实际没有分配空间,所以一定找不到,就会报错,错误类型无法解析外部符号。
-
error2019无法解析外部符号
2018-11-08 08:32:10“error LNK2019: 无法解析的外部符号 error LNK2001: 无法解析的外部符号“private: static struct _OVERLAPPED CUsbCom::g_WriteOverlapped” 应该是工程设置的问题 没有连接相应的lib库或者是所用到的函数没定义... -
QT使用WinApi 报错 LNK2019 无法解析外部符号
2021-03-15 16:40:06今天使用QT做 USB相机的项目,编译过程中报错“LNK2019 无法解析外部符号”如下图 心路历程 “1.我以为是mingw 和 vc用混了->看了下配置并不是” 我寻思一方面 Qt是可以WinApi 二是写的时候IDE没有报错提醒 “2.... -
VS中提示无法解析外部符号
2015-10-26 03:43:221>EyebioDlg.obj : error LNK2001: 无法解析的外部符号 "class cv::Mat __cdecl md1(class cv::Mat &,class cv::RNG &)" (?md1@@YA?AVMat@cv@@AAV12@AAVRNG@2@@Z) 1>EyebioDlg.obj : error LNK2001: 无法解析的外部... -
vs2008无法解析外部符号问题的一种可能情况
2018-03-16 15:24:32在函数定义了并且也实现的情况下,编译连接的时候还是一直报无法解析外部符号,这种情况可能是命名空间的问题,检测出问题函数的所有参数和返回值是否在同一命名空间内... -
ink2001错误无法解析外部符号metaObject
2014-12-18 11:44:55link2001错误无法解析外部符号metaObject 转载▼ 标签: qt link2001 metaobject qt_metacast qt_metacall it 几天没有关注我的QT... -
CUDA编程时遇到无法解析外部符号threadIdx或blockIdx问题的解决办法
2019-12-22 20:51:54在CUDA编程时遇到出现无法解析外部符号threadIdx或blockIdx或gridIdx问题的解决办法 在CUDA编程之前要确保工程项目的配置属性一致性如图一所示。然后点击项目—>属性确保配置属性无误。 VC++ 目录 可执行文件... -
vs2010用directshow无法解析外部符号
2016-08-17 19:45:381>camera_zc.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall CCameraJoy::~CCameraJoy(void)" (??1CCameraJoy@@UAE@XZ),该符号在函数 "public: virtual __thiscall CCamera_zcDlg::~CCamera... -
vs2013 无法解析外部命令,无法解析外部符号?
2016-08-01 19:47:04文件结构是一个控制台程序, 和一个mfc转的lib包, 还有头文件, 编译的时候提示这两个错误, 怎么解决? [img=https://img-bbs.csdn.net/upload/201608/01/1470051958_898114.png][/img] -
visual studio 2019配置官网下载的Zbar时出现无法解析外部符号错误
2020-05-16 16:06:47visual studio 2019配置Zbar无法解析外部符号 链接: 一样的错误 后来看有的教程下面评论说,应该是因为官网的版本支持32位,但vs编译器是位的,所以出现错误。于是就去找了64位的Zbar包。 Free64位Zbar: Zbar64. 再... -
C++-问题(4)-解决引用外部DLL时报error LNK2019-无法解析外部符号-VS2019
2021-02-17 19:50:50LNK2019-无法解析外部符号。造成这个的原因非常多。今天又遇到了。 原因:两个程序间的字符集要一致。mark一下 -
c++预声明类引发的无法解析外部符号问题
2016-11-09 11:45:00在VisualStudio下开发C++程序常遇到链接问题就是:LNK2019 无法解析外部符号. 这个问题一般我们认为是没有将引用的代码链接到当前项目造成,也有例外,就是下面我要说的预声明类导致的。 为了加快编译速度,我们... -
VS使用openCV debug模式报错“无法解析外部符号”,release模式正常
2019-11-20 17:56:31问题:VS使用openCV debug模式报错“无法解析外部符号”,release模式正常 原因: 1.debug模式和Release模式配置不一样,需要单独配置,debug模式附加依赖项比Release模式多了一个“d”,Debug模式是:opencv_world... -
opengl soil.lib中的类报出无法解析外部符号的错误
2020-06-09 02:10:551>SOIL.lib(SOIL.obj) : error LNK2019: 无法解析的外部符号 __imp__glBindTexture@8,函数 _SOIL_direct_load_DDS_from_memory 中引用了该符号 1>SOIL.lib(SOIL.obj) : error LNK2019: 无法解析的外部符号 __imp__... -
无法解析外部符号,怎么解决??
2016-09-03 05:39:481>main.obj : error LNK2019: 无法解析的外部符号 "public: class Screen & __thiscall Screen::set(char)" (?set@Screen@@QAEAAV1@D@Z),该符号在函数 _main 中被引用 1>main.obj : error LNK2019: 无法解析的外部... -
error LINK2019 无法解析外部符号是怎么回事?
2013-04-10 11:21:17error LINK2019 无法解析外部符号是怎么回事? >------ 已启动生成: 项目: server, 配置: Debug Win32 ------ 1>正在编译... 1>server.cpp 1>正在链接... 1>server.obj : error LNK2019: 无法解析的... -
编译:无法解析外部符号
2020-03-31 14:14:00以下可能原因: a)代码中调用的函数只有声明,没有实现; b)项目包含某些头文件,但未链接或加载相应的dll或lib库; -
ffmpeg 无法解析 外部符号
2011-08-15 10:38:38出现error LNK2019: 无法解析的外部符号 "void __cdecl av_close_input_file(struct AVFormatContext *)" ([email=?av_close_input_file@@YAXPAUAVFormatContext@ -
Opengl 64位 vs2017配置错误 无法解析外部符号 _imp_g****
2020-11-19 18:16:54之前报的错误一直都是:LNK2019 无法解析外部符号 _imp_gl***** 我一直以为是链接器的错误,是库是32位的,一直在找编译成64位的库,自己也手动编译了。但就是不行,网上的办法也试了个遍!!!!! 最后玩完没想到是... -
cuda 无法解析外部符号的问题
2017-05-26 11:36:30错误是这样的,版本的cuda 8.0+vs2013 Error 91 error LNK2019: unresolved external symbol _cublasCreate_v2@4 referenced in function _main E:cuda_testcublascublaskernel.cu.obj cublas Error 92 error LNK... -
错误提示:无法解析外部符号
2020-04-24 21:55:48有可能是成员函数前没冠类名。 -
无法解析外部符号cvround cvceil
2017-10-11 09:42:46[img=https://img-bbs.csdn.net/upload/201710/11/1507686011_268143.png][/img] 有大佬可以解答一下吗???? -
visual studio 2019 一个关于无法解析外部符号的报错怎么修改?
2021-01-13 17:40:40错误 LNK2019 无法解析的外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号 student manage system D:\C11Program\student manage system\... -
visual studio 2013下无法解析外部符号的问题
2016-11-11 20:28:161>------ 已启动生成: 项目: ConsoleApplication7, 配置...1>client.obj : error LNK2019: 无法解析的外部符号 __imp__closesocket@4,该符号在函数 _main 中被引用 1>client.obj : error LNK2019: 无法解析的外部符 -
C++无法解析外部符号是怎么回事。
2020-05-28 19:43:17  -
cuda error2019 无法解析外部符号
2013-10-23 12:55:00kernel.cu.obj : error LNK2019: 无法解析的外部符号 __imp__cutCheckCmdLineFlag@12,该符号在函数 _main 中被引用 解决方法: 需要把cutil32.lib和cutil64.lib的路径同时加到连接器->常规->附加目录库中 -
错误:无法解析外部符号
2016-05-26 10:34:00一般这种错误就是你使用一个函数的时候,可能只是在...可以#pragma comment(lib, "XXX.lib")来实现,也可以添加外部依赖库来实现: 注意路径要正确。 转载于:https://www.cnblogs.com/predator-wang/p/5530122...