精华内容
下载资源
问答
  • 关于“无法解析外部命令”的几个常见原因
    千次阅读
    2019-09-26 16:10:36

    这次接手的项目中生成后遇到了类似问题,经过参考排查发现外部C++文件中extern声明的函数类型与原定义的函数类型不一致。但由于报错实在奇怪,我也是第一次遇到这种问题,花了整整两天才将问题解决掉。由于参考的一篇博客虽然简单,但对于问题排查十分有用,就转载过来,原文链接是:无法解析的外部符号_玩世不恭_新浪博客

    以下为原文:

    无法解析的外部符号的情况发生原因:

      1,没有加入相应lib库文件.

      2.类成员有声明,但没有定义.或者定义与声明不符合.

      3.没有包含源文件.例如

    extern int i; 
    extern void g();
    void f()
    {
    i++;
    g();
    }
    int main()
    {
    }
     4.符号定义在编译为 C 程序的文件中,而符号是在 C++ 文件中不带 extern "C" 修饰符声明的。在此情况下,请修改声明,例如不是使用:
    extern int i;
    extern void g();
    而使用:

    extern "C" int i;
    extern "C" void g();
    同样,如果在将由 C 程序使用的 C++ 文件中定义符号,请在定义中使用 extern "C"。

    5.符号定义为静态,但稍后在文件外部被引用。
    没有定义静态类成员。例如,应单独定义下面类声明中的成员变量 si:
    #include <stdio.h>
    struct X {
    static int si;
    };

    // int X::si = 0; // uncomment this line to resolve

    void main()

        X *px = new X[2]; 
        printf("/n%d",px[0].si); // LNK2019
    }

     

    6.调用的函数参数输入不正确。2019

     

    另外类出常见错误:

     cannot instantiate abstract class

      一是继承类没有重写纯虚函数,二是该类是抽象类

    本次遇到的问题是最简单的返回类型错误,即在A.cpp中定义了形如:

    QString B(DcmDataset* ds, const Tag &tag, QSqlQuery& query, const QString& str, const QVariant& Varient)
    {
    ...
    }

    但在外部文件extern声明的时候写错成:

    extern void B(DcmDataset* ds, const Tag &tag, QSqlQuery& query, const QString& str, const QVariant& Varient);

    由此导致,此问题在生成之前编译器(vs2010)是找不出来的,在生成时报的错也很容易让人摸不着头脑。

    更多相关内容
  • 无法解析外部命令

    千次阅读 2019-06-10 10:15:54
    编译程序出现如图错误 开始时并没有问题,把程序放在别的电脑运行出错所以修改了项目属性->常规->MFC的使用->在静态中使用MFC,参考另外篇博客。...因为程序并不是mfc程序,所以才会导致编译出错,这里...

    编译程序出现如图错误

    开始时并没有问题,把程序放在别的电脑运行出错所以修改了项目属性->常规->MFC的使用->在静态中使用MFC,参考另外篇博客。

    因为程序并不是mfc程序,所以才会导致编译出错,这里可以添加头文件#include <afxwin.h>来解决该问题,重新编译程序,又出现问题,还好和之前不一样。

    很明显这是因为多重包含windows.h头文件,把#include <afxwin.h>放到windows头文件之前就可以解决,重新编译,成功

    展开全文
  • C++常见无法解析外部命令错误总结

    千次阅读 2021-11-29 00:30:01
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变 欢迎使用Markdown编辑器 ...LNK2019 无法解析外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号 如果是w

    一、出现不存在从CString到const char*的转换,

    可以将项目属性的字符集设置从"使用Unicode字符集“转换为”使用多字字符集“,点击”项目“----“属性”----“配置属性”----”常规“----”字符集“

    二、LNK2019 无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中引用了该符号

    如果是windows程序:

    1.菜单中选择 Project->Properties, 弹出Property Pages窗口

    2.在左边栏中依次选择:Configuration Properties->C/C+±>Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.

    3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)

    如果是控制台程序:

    1.菜单中选择 Project->Properties, 弹出Property Pages窗口

    2.在左边栏中依次选择:Configuration Properties->C/C+±>Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_WINDOWS, 添加_CONSOLE.

    3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)

    三、无法写入编译器生成的文件: “: No space left on device

    原因:空间不足

    四、禁止显示状态 错误 C4996 ‘strcpy’: This function or variable may be unsafe. Consider using

    用strcpy_s来代替strcpy

    五、禁止显示状态

    错误 C4996 ‘localtime’: This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

    在项目属性——命令行中添加 /D _CRT_SECURE_NO_WARNINGS

    六、无法更新程序数据库g\vc142.idb

    在这里插入图片描述

    七、错误 LNK2019 无法解析的外部符号 “public: int __thiscall Company::SetBonus(int,double)” (?SetBonus@Company@@QAEHHN@Z),函数 “protected: void __thiscall MyFrame::SETBonus(void)” (?SETBonus@MyFrame@@IAEXXZ) 中引用了该符号

    其一:某个方法只是在.h里面声明,没有在cpp里面实现。
    其二:声明和实现都有了,但是没有添加到vs的虚拟工作目录下面,这时候如果在其他.cpp引用的话就报这个错,想想是不是添加漏了文件。

    展开全文
  • 但是在选择release模式以后,就会出现无法解析外部命令提示。 回想了一下以前配置debug模式的时候,网上的教程有说过链接器输入的配置那里,需要配置debug模式添加opencv_world331d.lib;需要配置release版本添加...

    VS2017+opencv3.3.1。

    本来配置好了debug模式。但是在选择release模式以后,就会出现无法解析的外部命令提示。

    回想了一下以前配置debug模式的时候,网上的教程有说过链接器输入的配置那里,需要配置debug模式添加opencv_world331d.lib;需要配置release版本添加opencv_world331.lib;。

    然后我将opencv_world331.lib;添加到依赖项中,问题解决。

    展开全文
  • VS2013,c++报错,无法解析外部命令

    千次阅读 2016-11-28 15:24:38
    我们在写C++构造函数的时候,总是会在.h文件里直接声明。因为没有用到,所以可能都...52 error LNK2019: 无法解析外部符号 "public: __thiscall DialogHandler::DialogHandler(char const *)" (??0DialogHandler@@Q
  • VS中无法解析外部命令的解决办法

    千次阅读 2022-03-10 08:41:31
    VS中无法解析外部命令的解决办法 报错LNK2005外部符号 报错LNK2019外部符号 报错LNK1120外部符号
  • **widget.obj : error LNK2019: 无法解析外部符号 "public: __cdecl MyPushButton…**具体错误提示很长来着,,, 直接上解决办法吧: 第一步: 删掉工程文件目录中Debug中的所有文档。 第二步: 点击,Qt ...
  • c++ 疑难杂症 无法解析外部命令

    千次阅读 2020-08-07 09:58:47
    1.可能是由于没有导入相应的外部依赖项或者库文件导致,可以首先检查项目-》属性中有,包含,附加依赖项有没有完整 2.在头文件中和cpp文件中存在不匹配的函数名称,然后这个不匹配的东西还正好在主函数中调用了! ...
  • C++:无法解析外部命令

    千次阅读 2020-04-15 23:24:28
    无法解析的外部符号 “public: __thiscall MemoryBlock::~MemoryBlock(void)” (?...fatal error LNK1120: 1 个无法解析外部命令 %%%%这类问题一般都是找不到函数的定义,常见为类成员函数只有声明,没有定义 ...
  • error link 1120 无法解析外部命令

    千次阅读 2019-08-25 18:28:00
    出现的原因 void_cdecl xxx(void) xxx()这个函数只声明没有实现,将xxx()实现部分加到文件中去就行
  • 使用 C++ 去调用C函数时,明明cpp文件中已经添加加了extern “C”, 为什么编译的时候vs还会报错呢,可能你忽略了一个简单的问题
  • 除主函数main函数外,若定义函数A中引用了另一定义函数B,此时B函数不能为void类型,否则会出现“无法解析外部命令”错误。
  • 最近遇到了以下的问题,新建的工程,怎么都运行的有错误,如下图: **原因:**新建的项目类型错误,新建的是Win32项目,入口函数是WinMain,而我的主函数是main,应该是Win32控制台项目 修改方法: ...
  • ![图片说明](https://img-ask.csdn.net/upload/202007/06/1594018982_323592.png) 求解答!!!!!
  • 首先,这个错误定义为一个:连接错误。 这个问题的根本原因:函数虽然申明了,但是没有定义函数的实现。。 出现这个问题常见的几种情况:  包含函数实现的cpp文件没有添加到项目中。 生成的库文件没有链接到...
  • 错误 52 error LNK2019: 无法解析外部符号 “public: __thiscall DialogHandler::DialogHandler(char const *)” (??0DialogHandler@@QAE@PBD@Z),该符号在函数 “public: __thiscall DialogHandlerShop::...
  • 按照教程来的,结果出现了无法解析命令,麻烦各位大牛指点一下 asd.obj : error LNK2019: 无法解析外部符号 "public: void __thiscall pcl::visualization::PCLVisualizer::setBackgroundColor(double const &,...
  • 本人小白一个,看到很多人说是lib库的问题,不知道lib是什么,也不要知道该怎么添加,求指点,谢谢。。。 不知道要不要附上程序,,下面是我的程序 #include using namespace std; const int MaxSize = 10;...
  • debug\learnQT01.exe : fatal error LNK1120: 1 个无法解析外部命令     解决办法: 方法一:将工程重新qmake,重新构建下。(不行再删除项目同名文件夹下的调试文件夹,例如:build-calculate-...
  • 1.一个无法解析外部命令 2.无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用 ``` #include #include struct student { char name[20]; int ...
  • 出现这种问题的原因有...2、当使用一个外部库的对应的头文件中使用函数的时候 第一种情况的解决办法: 无!!!!! 第二种情况,肯定是自己导入的库有问题,检查一下导入的库是否正确,包括路径,D或R的版本。 ...
  • QT "无法解析外部命令"的解决办法

    万次阅读 2017-02-09 11:08:33
    main.obj:-1: error: LNK2019: 无法解析外部符号 "public: __cdecl Dialog::Dialog(class QWidget *)" (??0Dialog@@QEAA@PEAVQWidget@@@Z),该符号在函数 main 中被引用 main.obj:-1: error: LNK2019: 无法解析的...
  • 解决VS“无法解析外部命令

    万次阅读 2016-04-12 15:51:40
    在使用VS编译的时候通常碰到“无法解析外部命令”或者“无法解析的外部符号”等错误提示,这是因为使用了外部库的原因,解决方法如下: (1) 添加#pragma comment(lib, "libName") (2) 项目属性 -> 链接器 -> 输入 ...
  • C++编译时,VS2019出现fatal error LNK1120: 1个无法解析外部命令错误,查了很多资料,网上说的解决方案如缺少库文件、工程配置等都不行! 原来是自己分文件编写时,用了类模板 类模板分文件编写,报错: ...
  • 无法解析外部指令的解决方法

    万次阅读 2018-06-21 19:13:20
    出现这种情况先不要慌张,我之前有段时间每次几乎都会出现这样,网上的方法尝试了很多,这里总结一下:1·在调用外部库的时候,出现这种问题,可能就是库调用的方式不对,在QT中调用的时候,可以在.pro文件中加入库...
  • 无法解析外部命令的以下原因

    千次阅读 2009-09-26 10:13:00
    比如:如果你要写网络程序那么就要用到Socket,你必须要把Socket的头文件#include进来,比如你加了:#include 但是只加了这句的话,你编译的时候就可能会提示你“无法解析外部命令”这个问题,这时候你必须把Socket...
  • lnk2019无法解析外部命令

    千次阅读 2017-08-01 10:05:37
    最近在尝试用tcp进行通信,写了两个简单的客户端和服务端,但是编译的时候出现了“error LNK2019: 无法解析外部符号”错误,为了以后进行总结,还是把解决方法记录下来。 1>------ 已启动生成: ...
  • opencv出现无法解析外部符号问题

    千次阅读 2021-12-31 15:23:42
    Point2f 出现未知重写符号、变量不是成员的类等问题 原因:未包含 #include <opencv2/core/core.hpp> using namespace cv; 无法解析外部符号问题 原因: 头文件重复包含 参考
  • 错误 LNK1120 1 个无法解析外部命令 错误 LNK2019 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用 解决: 由于本人老白,所以不是vs2017的(配置)...
  • win7 64位系统配置OpenGL后,项目配置管理器为X64时,出现无法解析外部命令的问题,配置管理器改为win32时问题就没有了,但是此时又出现无法解析外部命令cvShowImage…… 问题了。各位大神,这个有办法解决么

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,930
精华内容 57,972
关键字:

无法解析的外部命令

友情链接: Siam.rar