精华内容
下载资源
问答
  • 无法解析外部符号

    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这个LIB



    vs2015无法解析外部符号__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(){}//显示人员信息
    };

    问题在于自己没有分清虚函数和纯虚函数的使用方法。

     

     

     

     

    展开全文
  • 无法解析外部符号,表面意思还是比较清楚的。 但当出了问题的时候呢,就不太好解决了。 最常出现问题的原因: 1.没有包含头文件 2.没有包含库文件 3.静态成员变量没有在类外定义 这里,我主要想说的是类中静态...

    无法解析外部符号,表面意思还是比较清楚的。

    但当出了问题的时候呢,就不太好解决了。

    最常出现问题的原因:

    1.没有包含头文件

    2.没有包含库文件

    3.静态成员变量没有在类外定义

    这里,我主要想说的是类中静态成员变量的问题。

    为啥我们没有在类外定义静态成员变量就会报这种错误呢。

    分析一下编译器对静态成员变量的处理流程,相信大家就会明白了。

    1.大家应该都知道静态变量是在编译期就分配空间的。当编译器编译程序的时候,不会查看类中的静态成员变量,或者说是碰到了也不会有反应,只会对类外发现的静态变量进行内存分配。为什么要这样呢?不清楚,大家可以考虑考虑,相信编译器这样做一定有他的理由。

    2.如果没在类外定义,编译器就不会在分配空间。所以呢,当程序运行的时候,类中的声明的这个静态变量实际没有分配空间,所以一定找不到,就会报错,错误类型无法解析外部符号。

    展开全文
  • “error LNK2019: 无法解析外部符号 error LNK2001: 无法解析外部符号“private: static struct _OVERLAPPED CUsbCom::g_WriteOverlapped” 应该是工程设置的问题 没有连接相应的lib库或者是所用到的函数没定义...
  • 今天使用QT做 USB相机的项目,编译过程中报错“LNK2019 无法解析外部符号”如下图 心路历程 “1.我以为是mingw 和 vc用混了->看了下配置并不是” 我寻思一方面 Qt是可以WinApi 二是写的时候IDE没有报错提醒 “2....
  • 1>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: 无法解析外部...
  • 在函数定义了并且也实现的情况下,编译连接的时候还是一直报无法解析外部符号,这种情况可能是命名空间的问题,检测出问题函数的所有参数和返回值是否在同一命名空间内...
  • link2001错误无法解析外部符号metaObject   转载▼ 标签:  qt   link2001   metaobject   qt_metacast   qt_metacall   it   几天没有关注我的QT...
  • 在CUDA编程时遇到出现无法解析外部符号threadIdx或blockIdx或gridIdx问题的解决办法 在CUDA编程之前要确保工程项目的配置属性一致性如图一所示。然后点击项目—>属性确保配置属性无误。 VC++ 目录 可执行文件...
  • 1>camera_zc.obj : error LNK2019: 无法解析外部符号 "public: virtual __thiscall CCameraJoy::~CCameraJoy(void)" (??1CCameraJoy@@UAE@XZ),该符号在函数 "public: virtual __thiscall CCamera_zcDlg::~CCamera...
  • 文件结构是一个控制台程序, 和一个mfc转的lib包, 还有头文件, 编译的时候提示这两个错误, 怎么解决? [img=https://img-bbs.csdn.net/upload/201608/01/1470051958_898114.png][/img]
  • visual studio 2019配置Zbar无法解析外部符号 链接: 一样的错误 后来看有的教程下面评论说,应该是因为官网的版本支持32位,但vs编译器是位的,所以出现错误。于是就去找了64位的Zbar包。 Free64位Zbar: Zbar64. 再...
  • LNK2019-无法解析外部符号。造成这个的原因非常多。今天又遇到了。 原因:两个程序间的字符集要一致。mark一下
  • 在VisualStudio下开发C++程序常遇到链接问题就是:LNK2019 无法解析外部符号. 这个问题一般我们认为是没有将引用的代码链接到当前项目造成,也有例外,就是下面我要说的预声明类导致的。 为了加快编译速度,我们...
  • 问题:VS使用openCV debug模式报错“无法解析外部符号”,release模式正常 原因: 1.debug模式和Release模式配置不一样,需要单独配置,debug模式附加依赖项比Release模式多了一个“d”,Debug模式是:opencv_world...
  • 1>SOIL.lib(SOIL.obj) : error LNK2019: 无法解析外部符号 __imp__glBindTexture@8,函数 _SOIL_direct_load_DDS_from_memory 中引用了该符号 1>SOIL.lib(SOIL.obj) : error LNK2019: 无法解析外部符号 __imp__...
  • 1>main.obj : error LNK2019: 无法解析外部符号 "public: class Screen & __thiscall Screen::set(char)" (?set@Screen@@QAEAAV1@D@Z),该符号在函数 _main 中被引用 1>main.obj : error LNK2019: 无法解析外部...
  • error LINK2019 无法解析外部符号是怎么回事?  >------ 已启动生成: 项目: server, 配置: Debug Win32 ------ 1>正在编译... 1>server.cpp 1>正在链接... 1>server.obj : error LNK2019: 无法解析的...
  • 以下可能原因: 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@
  • 之前报的错误一直都是:LNK2019 无法解析外部符号 _imp_gl***** 我一直以为是链接器的错误,是库是32位的,一直在找编译成64位的库,自己也手动编译了。但就是不行,网上的办法也试了个遍!!!!! 最后玩完没想到是...
  • 错误是这样的,版本的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...
  • 有可能是成员函数前没冠类名。
  • [img=https://img-bbs.csdn.net/upload/201710/11/1507686011_268143.png][/img] 有大佬可以解答一下吗????
  • 错误 LNK2019 无法解析外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号 student manage system D:\C11Program\student manage system\...
  • 1>------ 已启动生成: 项目: ConsoleApplication7, 配置...1>client.obj : error LNK2019: 无法解析外部符号 __imp__closesocket@4,该符号在函数 _main 中被引用 1>client.obj : error LNK2019: 无法解析的外部符
  • ![图片说明](https://img-ask.csdn.net/upload/202005/28/1590666159_150894.png) ![图片说明](https://img-ask.csdn.net/upload/202005/28/1590666173_905130.png)
  • cuda error2019 无法解析外部符号

    千次阅读 2013-10-23 12:55:00
    kernel.cu.obj : error LNK2019: 无法解析外部符号 __imp__cutCheckCmdLineFlag@12,该符号在函数 _main 中被引用 解决方法: 需要把cutil32.lib和cutil64.lib的路径同时加到连接器->常规->附加目录库中
  • 一般这种错误就是你使用一个函数的时候,可能只是在...可以#pragma comment(lib, "XXX.lib")来实现,也可以添加外部依赖库来实现: 注意路径要正确。 转载于:https://www.cnblogs.com/predator-wang/p/5530122...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,720
精华内容 1,888
关键字:

无法解析外部符号