精华内容
下载资源
问答
  • C++ VS2019报错 无法解析外部符号 XXXXXXX 函数main中引用了该符号
    2022-03-28 11:03:05

    错误相关文件:

    AndQuery.h

    #pragma once
    #ifndef _ANDQUERY_H_
    #define _ANDQUERY_H_
    #include"BinaryQuery.h"
    
    using namespace std;
    
    class Query;
    
    class AndQuery : public BinaryQuery
    {
    	friend Query operator&(const Query&, const Query&);
    	AndQuery(const Query& left, const Query& right) : BinaryQuery(left, right, "&") 
    											{ cout << "AndQuery的构造函数" << endl; }
    	QueryResult eval(const TextQuery&) const;
    };
    
    inline Query operator&(const Query& l, const Query& r)
    {
    	return shared_ptr<Query_base>(new AndQuery(l, r));
    }
    
    #endif
    

    第一个错误的原因

    main.cpp忘记包含头文件了。
    报错信息:

    LNK2019	无法解析的外部符号 
    "class Query __cdecl operator&(class Query const &,class Query const &)"
     (??I@YA?AVQuery@@AEBV0@0@Z),
    函数 main 中引用了该符号
    

    报错信息似乎是说:你在main函数里使用了重载的&运算符,但是找不到它的定义在哪。
    仔细一想,哦,确实是,我忘记包含头文件(AndQuery.h)了,怎么可能找到。
    这种低级错误,在大工程里一定要注意,因为涉及到的头文件太多,继承体系也很复杂,很容易出现忘记包含某个头文件的情况。

    第二个错误的原因

    没有对父类的纯虚函数定义自己的虚函数。
    报错信息:

    LNK2001	无法解析的外部符号 
    "private: virtual class QueryResult __cdecl AndQuery::eval(class TextQuery const &)const " 
    (?eval@AndQuery@@EEBA?AVQueryResult@@AEBVTextQuery@@@Z)
    

    根据报错信息很难推断出是为啥错了,只能知道,是因为AndQuery的成员函数eval()出的错。
    我们去分析这个成员函数。
    这个成员函数是父类定义的纯虚函数,我们之前说过,对于抽象父类声明的纯虚函,子类一定要给出他的实际定义,把它变成自己的虚函数。即使现有的代码根本不会调用到这个虚函数,那也还是要给出定义。
    除非你的当前的代码中根本没有用到这个子类,这时,你才可以不给出定义。

    更多相关内容
  • error LNK2019: 无法解析外部符号 问题的解决办法,需要的朋友可以参考一下
  • VS开发中遇到无法解析外部符号问题(LNK错误)

    千次阅读 热门讨论 2019-06-12 18:34:11
    VS开发中,很容易遇到外部符号无法解析的问题,而这些问题大部分都是引用库失败导致的,只需正确的加载到了库,这类问题就可以解决了 但也存在非库的原因,比如编码问题 关于VS编码格式以及VS修改行尾编码格式 ...

    在VS开发中,很容易遇到外部符号无法解析的问题,而这些问题大部分都是引用库失败导致的,只需正确的加载到了库,这类问题就可以解决了
    但也存在非库的原因,比如编码问题
    关于VS编码格式以及VS修改行尾编码格式

    问题如图
    在这里插入图片描述
    解决办法

    代码文件保存行尾不一致导致的,行尾改为 Windows(CR LF)。
    在这里插入图片描述
    在这里插入图片描述
    修改后即可编译通过
    在这里插入图片描述

    展开全文
  • 例如项目A中调用了静态库a.lib的对外接口func1(),而a.lib中的接口func1()又引用了静态库b.lib中的func2(),但是项目A只引用了a.lib,导致func2()符号无法解析。示意图如下: 这种情况只需要将a.lib和b.lib...

    1.引用库时发生错误,例如路径错误或者库名错误等。

    项目属性--链接器--常规--附加库目录   指定库的路径

    项目属性--链接器--输入--附加依赖项   指定库的名称

     

    2.库与库之间存在嵌套调用,引用库时只引用了上层库,没有引用下层库。

    例如项目A中调用了静态库a.lib的对外接口func1(),而a.lib中的接口func1()又引用了静态库b.lib中的func2(),但是项目A只引用了a.lib,导致func2()符号无法解析。示意图如下:

    这种情况只需要将a.lib和b.lib放在同一目录,例如E:\lib,然后在VS的 项目属性--链接器--命令行 中添加如下命令一次性引入即可:

    E:\lib\*.lib

     

    3.本项目的项目属性与引用库的项目属性不一致,包括但不限于以下若干项:

    (1)平台不一致,例如项目A是64位(x64),而引用的库是32位(x86);

    (2)配置不一致,例如项目A是Release模式,而引用的库时Debug模式;

    (3)字符集不一致,例如项目A的字符集为“使用UNICODE字符集”,而引用的库的字符集为“使用多字节字符集”;

    (4)运行库不一致,例如项目A的运行库设置为“多线程 (/MT)”,而引用的库的运行库设置为“多线程 DLL (/MD)”;

     

    4.C++项目引用C库,忘记加extern "C"{}

    假设项目A为C++项目,而引用库a.lib全部由C语言编写,包含头文件时需要加上extern "C"{},表示按照C的调用规则传参,如下所示:

    extern "C" {
        #include "a.h "
    }

    #pragma comment(lib,"a.lib")

    void main(){

        func1();

    }

     

     

     

     

    展开全文
  • VS2019 无法解析外部符号 main

    千次阅读 2020-06-08 11:48:52
    提示 无法解析外部符号 main。检查代码后没有发现有错。奇怪,哪里出问题了? 测试 无奈,直接右键移除了,编译,然后出错,出现一样的提示(当然了,pch里面没有main函数,报错很正常)。然后在源文件上右键添加...

    文章目录


    在这里插入图片描述
    在源文件里直接右键添加一个新项cpp文件6.3.1.cpp,然后写了一点简单的代码,编译后
    提示 无法解析的外部符号 main。检查代码后没有发现有错。奇怪,哪里出问题了?

    测试

    无奈,直接右键移除了,编译,然后出错,出现一样的提示(当然了,pch里面没有main函数,报错很正常)。然后在源文件上右键添加一个现有项(就是刚才的文件),编译。
    没有报错,程序正确运行,😓(lll¬ω¬)

    分析

    直接右键添加新项时,我写的是6.3.1,因为有小数点,程序没有在后面自动补上.cpp后缀,在编译前发现了,重命名加上了.cpp后缀。然后,编译 报错。
    (但是,为什么?嘛,Windows的事情谁说的清楚呢 嗯~ o( ̄▽ ̄)o )

    展开全文
  • 最近遇到了个诡异问题,移植代码到另一个版本,qt代码怎么也编不过去。之前忙,就放着,最近处理,查了很多资料。 这个问题一般是没有产生对应的moc_xx.cpp,所以需要找到产生moc__xx这个文件的头文件,把类里Q_...
  • 解决error LNK2001 无法解析外部符号 int __cdecl sprintf
  • 如果外部符号是这个解决方案的其他项目里的定义的话,就应该可以使用这个方法 先打开无法解析的地方,就是后面项目括号里写的,找到同名生成前的文件,然后把无法解析的地方f12追过去,找到打开该文件的位置,看看在...
  • VS2017 无法解析外部符号

    万次阅读 2018-12-24 22:20:57
    通常是lib文件没包含进去的原因。进行以下三步: 1.检查库目录是否有lib文件所在的文件目录 2.在源文件开头定义#pragma comment(lib,"xxx.lib") 3.如下图所示,在附加依赖项中假如库文件路径。...
  • 背景:将qt源码移植到自己项目里的过程中,出现了一大堆无法解析外部符号以及一堆的link错误,接下来我会从各个方面一一分析每种错误产生的原因 Qt-moc简单介绍:Qt 不是使用“标准的”C++语言编写,而是对其进行...
  • 注意解决方案平台使用选用的是32位的还是64位的 这一步引入包含目录以及库文件的操作网上教程已有很多,此处不再赘述 需要注意此处选择的平台如果是32位,则调试过程中也要选择x86;64位同理 ...
  • ![图片说明]... #include #include #pragma comment(lib,"legacy_stdio_definitions.lib") ...using namespace cv;...int main(int argc, char** argv) { ...```
  • 转载 https://blog.csdn.net/enotswn/article/details/5934938
  •   运行vs程序的时候,报错严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析外部符号 "__declspec(dllimport) public: void __cdecl PointCloudFilter::setptClouds(struct LAS_POINT *)" (__...
  • 原因分析 出现这种问题的原因,有很多种,第一种也是最...出现警告说明你属于这一种情况,你需要在vs的文件菜单里找到高级保存选项(vs高版本需要在设置里调出来,不会的百度搜),然后选择window(CR LF),即window
  • 若有包含其他库,且规模较大,在写自己的代码时尽量避免把代码放在如小写 “common” 这种常见名字的文件夹内,否则容易出现编译成功,但.obj文件找不到某个函数导致错误LNK2019
  • C++之Error无法解析外部符号

    千次阅读 2021-09-28 15:00:24
    文章目录C++之VisualStudio的使用遇到问题解决问题一 无法解析外部符号问题二 无法打开文件lib问题三 debug不可以运行,release可以运行 问题一 无法解析外部符号 [问题描述] 在编译中遇到,viaual studio无法...
  • 全部都是无法解析外部符号,上网上搜索了下,大部分是说链接器的问题,可我所有的库目录以及库文件都配置完成了。后来我上微软的报错网站上去看,基本上也是说链接器的问题。 后来我突然想到以前是因为Qt的宏 Q_...
  • } asm文件内容如下 global test extern a section .text test: mov eax,a ret 报错内容为 LNK2001 无法解析外部符号 a LNK1120 1 个无法解析的外部命令 试过引用函数也会出现同样错误 上网搜半天也没搜到个解决...
  • 使用VS2012编译项目报错如下:error LNK2019: 无法解析外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用error LNK2019: 无法解析外部符号 _mysql_query@8,该符号在函数 _main 中被引用error LNK...
  • 一开始报错: 一般原因是没有包括需要的 .lib 报错说明可能出现在vtk 和pcl_visualization 的lib上。在依赖库中添加pcl_visualization.lib 或者在.cmake文件中添加visualization重新编译,如下: ...
  • error LNK2001: 无法解析外部符号 namespaces 解决方法 添加WITH_NONAMESPACES 就好了。
  • LNK2019 : 无法解析外部符号 xxx 中被引用 采用开源程序,忘记添加依赖项,这个是最常见的问题。解决办法如下: 右键打开项目属性 C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项 链接器、...
  • 从网上下载一个VS的demo,编译之后老是报 LNK2001:无法解析外部符号_sprintf的错误,找了好久,发现 在项目属性->链接器->输入->附加目录依赖项添加 legacy_stdio_definitions.lib 即可解决问题。 但...
  • 在开始这个话题之前,非常想吐槽一下VS 2010,因为今天在封装一个静态库时就出现了这个情况,之前也是遇到过这个情况,以为是跟以往出现的情况是一样的,按照着往常的解决思路查找了一遍问题所在,发现完全没有问题...
  • VS2015无法解析外部符号

    千次阅读 2016-12-06 12:39:22
    在使用VS编辑C++时,遇到了无法解析外部符号的错误 严重性 代码 说明 项目 文件 行 错误 LNK2019 无法解析的外部符号 "public: __thiscall Employee::Employee(void)" (??0Employee@@QAE@XZ),该符号在...
  • 大家写程序的有时候把inlcude、lib以及附加依赖项都配置好了,但是运行的时候还是报错了,无法解析外部符号。。。这是让人很奔溃的。但是有没有大家没有把最不起眼的环境修改了。没错 就是它,是不是这个环境没...
  • 解决方法: 在链接器输入lib里加上legacy_stdio_definitions.lib这个LIB
  • 今天在写程序的时候遇到个问题: 然后就去看了相应的解决方法 发现都不管用: 1.不是文件名.c或.cpp的问题 2.不是没有包含相应头文件的问题 3.不是写的控制台程序而使用的Windows连接程序(Winmain) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,883
精华内容 39,953
关键字:

vs无法解析的外部符号

友情链接: shenbao.rar