精华内容
下载资源
问答
  • Lnk2019
    2022-08-12 11:06:48

    小结

    碰到了OpenSSL加入到在Visual Studio 2019中编译返回LNK2019错误,添加了缺失的库文件,解决了问题。

    问题和解决

    Error LNK2019

    错误有类似以下返回:

    Severity	Code	Description	Project	File	Line	Suppression State
    Error	LNK2019	unresolved external symbol _BUF_MEM_new referenced in function "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl SimpleWeb::Crypto::Base64::encode(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?encode@Base64@Crypto@SimpleWeb@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV45@@Z)
    Error	LNK2019	unresolved external symbol BIO_ctrl referenced in function "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl SimpleWeb::Crypto::Base64::encode(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?encode@Base64@Crypto@SimpleWeb@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV45@@Z)
    

    在Visual Studio 2019中编译返回LNK2019错误这个问题比较难解决,根据网上经验,尝试了多种解决办法都没有用。
    大体有三种解决思路,如下:

    • 函数只声明了没进行定义
      仔细检查了项目的文件,并没有发现没有定义的情况。
    • 编译平台没有选对
      尝试更改了X86和X64的平台,并没有解决问题。
    • 相应的库没有添加到工程中来
      看来看去也看不出具体是哪个库缺失,根据多方查找验证,发现应该是与OpenSSL有关的库。

    尝试了在工程属性–> C/C++ --> Code Generation --> Runtime Library进行更改:

    • Multi-threaded (/MT)
    • Multi-threaded Debug (/MTd)
    • Multi-threaded DLL (/MD)
    • Multi-threaded Debug DLL (/MDd)
      以上四个选项进行了切换,发现都不行。

    参考:Visual Studio 2019配置OpenSSL 3.0开发环境

    工程属性–> Linker --> Input --> Additional Dependencies添加以下库文件:

    • openssl.lib
    • libcrypto.lib
    • libssl.lib
      问题解决。
      我先前安装了Win64OpenSSL-3_0_5.msi,工程文件里都添加了包含目录和库目录,但是还是要在以上设置里添加这三个库。

    Error LNK1104

    工程属性–> C/C++ --> Code Generation --> Runtime Library进行更改的时候,会报LNK1104的错误。

    • Multi-threaded (/MT)
    • Multi-threaded Debug (/MTd)
    • Multi-threaded DLL (/MD)
    • Multi-threaded Debug DLL (/MDd)

    LNK1104 cannot open file 'libboost_date_time-vc142-mt-sgd-x64-1_70.lib',实际在目录里是有libboost_date_time-vc142-mt-gd-x64-1_70.lib,少了个s, 运行库需要的库还不一样,如果拷贝一份,再进行改名,加上个s, 也是能编译的。

    Warning C4996

    有关C4996警告,已经设置了project properties -> Configuration Properties -> C/C++ -> General -> SDL checks -> No,还是不行。

    直接把#pragma warning(disable : 4996)放在代码前面进行了屏蔽。

    最后,直接忽略了warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data

    参考

    Visual Studio 2019配置OpenSSL 3.0开发环境
    Stack Overflow: LNK1104 cannot open file ‘libboost_log-vc142-mt-gd-x64-1_72.lib’?
    VS2012 error C2019, error link2019:无法解析的外部符号
    【error LNK2019: unresolved external symbol】问题解决方案
    Error LNK2019:Unresolved External Symbol 的解决方案
    Unresolved external symbol in object files
    Why does Visual Studio 2013 error on C4996?

    更多相关内容
  • 解决 error LNK2019 无法解析的外部符号,该符号在函数 中被引用
  • error LNK2019: 无法解析的外部符号 问题的解决办法,需要的朋友可以参考一下
  • 主要介绍了C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • “error: LNK2019”、“error: LNK1120”报错的可能原因及相应可能的解决方法

    今天又碰到了报错“LNK:2019”和“LNK:1120”,记录一下。

    user_interface.obj:-1: error: LNK2019: 无法解析的外部符号 "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl user_interface::alter_str(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,char)" (?alter_str@user_interface@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@D@Z),该符号在函数 "public: void __cdecl user_interface::update_notification(void)" (?update_notification@user_interface@@QEAAXXZ) 中被引用
    

    还有

    release\attendance_management.exe:-1: error: LNK1120: 1 个无法解析的外部命令
    

    报错的代码在头文件的声明为

    std::string alter_str(std::string target_str,char delete_char);
    

    在cpp文件的定义为

    std::string alter_str(std::string target_str,char delete_char)
    {
    //int length=Target.length();
    std::string::iterator it_i;
    for(it_i=target_str.begin();it_i!=target_str.end();it_i++)
    {
        if(*it_i==delete_char)
        {
            target_str.erase(it_i);
    
        }
    }
    return target_str;
    }
    

    调用部分为

    time_str=alter_str(time_str,'-');
    

    其中time_str是std::string类。

    这里错误的原因为:
    在cpp文件里定义函数时,没有把类名标上去,犯了类似于声明但没有定义的错误,导致报错。

    正确的做法是在cpp文件里函数定义那里把类名(user_interface::)加上,如下:

    std::string user_interface::alter_str(std::string target_str,char delete_char)
    {
    //int length=Target.length();
    std::string::iterator it_i;
    for(it_i=target_str.begin();it_i!=target_str.end();it_i++)
    {
        if(*it_i==delete_char)
        {
            target_str.erase(it_i);
    
        }
    }
    return target_str;
    }
    

    就此,本次问题得以解决。

    顺便再整理一下“error: LNK2019”、“error: LNK1120”报错的可能原因及相应可能的解决方法。
    可能原因及相应可能的解决方法:
    1、你使用了别人的库,然后还只包含了头文件而没有引入库文件,以至于在链接过程中搜索不到程序用到的库文件,也就是*.lib。例如在使用opencv时,没有添加附加依赖项,或者没有添加可执行文件目录、包含目录、库目录,没有在系统环境变量里添加可执行文件路径等等,如下图
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    2、声明了一个函数却没有定义,或声明并定义了一个函数,但在定义该函数时没有加上其的类名或空间名,例如上面的 user_interface::
    关于“::”,多用于表示方法引用(函数式接口的另一种书写方式),如
    静态方法引用,通过类名::静态方法名, 如 Integer::parseInt
    实例方法引用,通过实例对象::实例方法,如 str::substring
    构造方法引用,通过类名::new, 如 User::new
    3、把类模板函数实现放到类的cpp文件中,然后在main函数中使用这个类的时候,就会出现无法解析的外部符号:函数名(xxxx)等错误,错误的原因就是现在的编译里不支持模板函数的申明和实现分开,要像上面那样使用类成员函数,有以下两种方法
    a.在使用这个类的文件中包含#include“xxxx.cpp”
    b.在类头文件末尾包含模板实现函数’#include"xxxx.cpp
    4、缺少目标.obj文件。重新设置文件编译路径并重新编译即可。

    展开全文
  • 链接器工具错误 LNK2019

    千次阅读 2020-08-28 10:26:00
    已编译的函数的函数对符号进行引用或调用,但是链接器在要链接的任何库或对象文件中都找不到符号定义。 此错误消息后跟严重错误LNK1120。 若要修复错误 LNK1120,必须先修复所有 LNK2001 和 LNK2019 错误。

    已编译的函数的函数对符号进行引用或调用,但是链接器在要链接的任何库或对象文件中都找不到符号定义。
    此错误消息后跟严重错误LNK1120。 若要修复错误 LNK1120,必须先修复所有 LNK2001 和 LNK2019 错误。

    可能的原因

    有多种方法可获取此错误。 所有这些都涉及到链接器无法解析的函数或变量的引用,或查找的定义。 编译器可以确定符号未声明的时间,但无法判断符号未定义的时间。 这是因为定义可能位于不同的源文件或库中。 如果某个符号被引用但从未定义,则链接器将生成一个无法解析的 :::no-loc(extern)::: al 符号错误。

    以下是一些导致 LNK2019 的常见问题:

    1.不编译包含符号定义的源文件

    在 Visual Studio 中,请确保定义符号的源文件编译为项目的一部分。 查看中间生成输出目录中是否有匹配的 .obj 文件。 如果未编译源文件,请在解决方案资源管理器中右键单击该文件,然后选择 “属性” 以检查该文件的属性。 “配置属性” " > 常规" 页应显示C/c + + 编译器的项类型。 在命令行上,确保编译了包含定义的源文件。

    2.未链接包含符号定义的对象文件或库

    在 Visual Studio 中,请确保包含符号定义的对象文件或库链接为项目的一部分。 在命令行上,确保要链接的文件列表包含对象文件或库。

    3.符号声明的拼写与符号的定义不同

    验证在声明和定义中以及使用或调用该符号的任何位置都使用正确的拼写和大小写。

    4.使用了函数,但是参数的类型或数量与函数定义不匹配

    函数声明必须匹配定义。 请确保函数调用与声明匹配,并且声明与定义匹配。 调用模板函数的代码还必须拥有包括与定义相同的模板参数的匹配模板函数声明。 有关模板声明不匹配的示例,请参阅示例部分中的示例 LNK2019e。

    5.已声明但未定义函数或变量

    当标头文件中存在声明,但未实现匹配定义时,可能会出现 LNK2019。 对于成员函数或 :::no-loc(static)::: 数据成员,实现必须包括类范围选择器。 有关示例,请参见 Missing Function Body or Variable。

    6.函数声明和函数定义之间的调用约定不同

    调用约定( :::no-loc(__cdecl)::: 、 :::no-loc(__stdcall)::: 、 :::no-loc(__fastcall)::: 或 :::no-loc(__vectorcall)::: )作为修饰名称的一部分进行编码。 请确保调用约定是相同的。

    7.符号在 C 文件中定义,但未 :::no-loc(extern)::: 在 c + + 文件中使用 “C” 进行声明

    在编译为 c 的文件中定义的符号具有与 c + + 文件中声明的符号不同的修饰名称,除非使用 :::no-loc(extern)::: "C"修饰符。 请确保该声明匹配每个符号的编译链接。 同样,如果在 C 程序将使用的 C++ 文件中定义符号,请在定义中使用 :::no-loc(extern)::: “C” 。

    7.符号定义为 :::no-loc(static)::: ,稍后在文件外部引用

    在 c + + 中,与 C 不同, global :::no-loc(const)::: 蚂蚁有 :::no-loc(static)::: 链接。 若要绕过此限制,可以 :::no-loc(const)::: 在标头文件中包括初始化并将该标头包含在 .cpp 文件中,也可以将变量设置为非 :::no-loc(const)::: ant,并使用 :::no-loc(const)::: ant 引用来访问它。

    8. :::no-loc(static):::未定义类的成员

    :::no-loc(static):::类成员必须具有唯一的定义,否则它将违反单个定义规则。 :::no-loc(static):::无法以内联方式定义的类成员必须通过使用其完全限定名称在一个源文件中进行定义。 如果根本没有定义此方法,则链接器会生成 LNK2019。

    9.生成依赖项仅在解决方案中定义为项目依赖项

    在 Visual Studio 的早期版本中,此级别的依赖项已经足够。 但是,从 Visual Studio 2010 开始,Visual Studio 需要一个项目到项目的引用。 如果你的项目没有项目到项目的引用,则可能会收到此链接器错误。 添加项目到项目引用以修复此错误。

    10.未定义入口点

    应用程序代码必须 :::no-loc(main)::: :::no-loc(wmain)::: 为控制台应用程序和 :::no-loc(WinMain)::: 或 :::no-loc(wWinMain)::: Windows 应用程序定义适当的入口点。 有关详细信息,请参阅 :::no-loc(main)::: 函数和命令行参数或 :::no-loc(WinMain)::: 函数。 若要使用自定义入口点,请指定/ENTRY (入口点符号)链接器选项。

    11.使用 Windows 应用程序的设置生成控制台应用程序

    如果错误消息类似于函数function_name ** :::no-loc(extern)::: :::no-loc(WinMain)::: 中引用的无法解析的 al 符号**,则使用 /SUBSYSTEM:控制台(而不是 /SUBSYSTEM: WINDOWS)进行链接。 有关此设置的详细信息以及如何在 Visual Studio 中设置此属性的说明,请参阅 /SUBSYSTEM (Specify Subsystem)。

    12.尝试将64位库链接到32位代码,或将32位库链接到64代码

    链接到代码的库和对象文件必须编译为与代码相同的体系结构。 确保项目引用的库是针对与项目相同的体系结构编译的。 请确保 " /LIBPATH " 或 “其他库目录” 属性指向为正确的体系结构生成的库。

    13.将不同的编译器选项用于不同源文件中的函数内联

    使用 .cpp 文件中定义的内联函数并在不同源文件中混合使用函数内联编译器可能会导致 LNK2019。 有关详细信息,请参阅 Function Inlining Problems。

    14.在其作用域外使用自动变量

    自动(函数范围)变量仅可在该函数的范围内使用。 不能 :::no-loc(extern)::: 在其他源文件中声明和使用这些变量。 有关示例,请参见 Automatic (Function Scope) Variables。

    15.调用内部函数或将参数类型传递到目标体系结构不支持的内部函数

    例如,如果您使用 :::no-loc(AVX2)::: 内部函数,但未指定 / :::no-loc(ARCH)::: : :::no-loc(AVX2)::: 编译器选项,则编译器会假定该内部 :::no-loc(extern)::: 函数为 al 函数。 编译器不会生成内联指令,而是生成对 :::no-loc(extern)::: 与内部函数同名的 al 符号的调用。 当链接器尝试找到此缺失函数的定义时,它会生成 LNK2019。 请确保仅使用目标体系结构支持的内部函数和类型。

    16.混合使用本机代码 :::no-loc(wchar_t)::: 和代码

    默认情况下,在 Visual Studio 2005 中完成的 c + + 语言一致性工作 :::no-loc(wchar_t)::: 是本机类型。 如果并非所有文件都是使用相同的 **/zc: :::no-loc(wchar_t)::: **设置编译的,则类型引用可能不会解析为兼容的类型。 请确保 :::no-loc(wchar_t)::: 所有库和对象文件中的类型都是兼容的。 请从 typedef 中更新 :::no-loc(wchar_t)::: ,或在编译时使用一致的 **/zc: :::no-loc(wchar_t)::: **设置。

    第三方库问题和 vcpkg

    如果尝试在生成过程中配置第三方库时遇到此错误,请考虑使用vcpkg(c + + 程序包管理器)安装和生成库。 vcpkg 支持较大和不断增长的第三方库列表。 它将成功生成所需的所有配置属性和依赖项设置为项目的一部分。

    诊断工具

    有时很难判断链接器无法找到特定的符号定义的原因。 通常,问题是您在生成中未包含包含定义的代码。 或者,生成选项已为 al 符号创建了不同的修饰名称 :::no-loc(extern)::: 。 有多种工具和选项可以帮助你诊断 LNK2019 错误。

    • /:::no-loc(VERBOSE):::链接器选项可帮助你确定链接器引用了哪些文件。 此选项可帮助您验证您的生成中是否包括包含符号定义的文件。
    • /:::no-loc(EXPORTS):::实用工具的和 /:::no-loc(SYMBOLS)::: 选项 :::no-loc(DUMPBIN)::: 可帮助你发现 .dll 和对象或库文件中定义了哪些符号。 请确保导出的修饰名与链接器搜索的修饰名称匹配。
    • :::no-loc(UNDNAME)::: 实用工具可以显示修饰名称的等效未修饰 :::no-loc(extern)::: al 符号。

    示例

    以下是一些导致 LNK2019 错误的代码示例,以及关于如何修复错误的信息。

    1.声明了符号,但是未对其进行定义

    在此示例中, :::no-loc(extern)::: 声明了 al 变量但未对其进行定义:

    // LNK2019.cpp
    // Compile by using: cl /EHsc /W4 LNK2019.cpp
    // LNK2019 expected
    :::no-loc(extern)::: char B[100];   // B isn't available to the linker
    int :::no-loc(main):::() {
       B[0] = ' ';   // LNK2019
    }
    

    下面是另一个示例,其中变量和函数声明为 :::no-loc(extern)::: 但未提供定义:

    // LNK2019c.cpp
    // Compile by using: cl /EHsc LNK2019c.cpp
    // LNK2019 expected
    :::no-loc(extern)::: int i;
    :::no-loc(extern)::: void g();
    void f() {
       i++;
       g();
    }
    int :::no-loc(main):::() {}
    

    除非 i 和 g 是在生成中包含的其中一个文件中定义的,否则链接器会生成 LNK2019。 你可以通过将包含定义的源代码文件作为编译的一部分包括在其中来修复错误。 或者,可以将包含定义的 .obj 文件或 .lib 文件传递到链接器。

    2.:::no-loc(static):::已声明但未定义数据成员

    当 :::no-loc(static)::: 声明但未定义数据成员时,也可能出现 LNK2019。 以下示例生成 LNK2019,并演示如何修复此错误。

    // LNK2019b.cpp
    // Compile by using: cl /EHsc LNK2019b.cpp
    // LNK2019 expected
    struct C {
       :::no-loc(static)::: int s;
    };
    
    // Uncomment the following line to fix the error.
    // int C::s;
    
    int :::no-loc(main):::() {
       C c;
       C::s = 1;
    }
    

    3.声明参数不匹配定义

    调用模板函数的代码必须拥有匹配的模板函数声明。 声明必须包括与定义相同的模板参数。 以下示例在用户定义的运算符上生成 LNK2019,并演示如何修复此错误。

    // LNK2019e.cpp
    // compile by using: cl /EHsc LNK2019e.cpp
    // LNK2019 expected
    #include <iostream>
    using namespace std;
    
    template<class T> class
    Test {
       // The operator<< declaration doesn't match the definition below:
       friend ostream& operator<<(ostream&, Test&);
       // To fix, replace the line above with the following:
       // template<typename T> friend ostream& operator<<(ostream&, Test<T>&);
    };
    
    template<typename T>
    ostream& operator<<(ostream& os, Test<T>& tt) {
       return os;
    }
    
    int :::no-loc(main):::() {
       Test<int> t;
       cout << "Test: " << t << endl;   // LNK2019 unresolved :::no-loc(extern):::al
    }
    

    4.:::no-loc(wchar_t):::类型定义不一致

    此示例创建一个 DLL,该 DLL 包含一个使用的导出 WCHAR ,该导出将解析为 :::no-loc(wchar_t)::: 。

    // LNK2019g.cpp
    // compile with: cl /EHsc /LD LNK2019g.cpp
    #include "windows.h"
    // WCHAR resolves to :::no-loc(wchar_t):::
    __declspec(dllexport) void func(WCHAR*) {}
    

    下一个示例使用上一示例中的 DLL,并生成 LNK2019,因为类型 unsigned short* 和 WCHAR* 不同。

    // LNK2019h.cpp
    // compile by using: cl /EHsc LNK2019h LNK2019g.lib
    // LNK2019 expected
    __declspec(dllimport) void func(unsigned short*);
    
    int :::no-loc(main):::() {
       func(0);
    }
    

    若要修复此错误,请将更改 unsigned short 为 :::no-loc(wchar_t)::: 或 WCHAR ,或使用/zc 编译 LNK2019g **: :::no-loc(wchar_t)::: - **。

    其他资源

    有关 LNK2001 的可能原因和解决方案的详细信息,请参阅 Stack Overflow 问题:未定义的引用/未解析的 " :::no-loc(extern)::: 符号错误",以及如何修复该错误?

    展开全文
  • 编译错误信息 1> 正在创建库 \\192.168.3.15\code\xsocket\x64\Debug\xsocket.lib 和对象 \\192.168.3.15\code\xsocket\x64\Debug\xsocket.exp 1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_accept,函数...

    创建项目选择动态链接库dll

    在这里插入图片描述

    引入代码

    #pragma once
    #include "pch.h"
    #include <string>
    #ifdef XSOCKET_EXPORTS
    #define XSOCKET_API __declspec(dllexport)
    #else
    #define XSOCKET_API __declspec(dllimport)
    #endif
    
    
    class XSOCKET_API XTcp
    {
    public:
    	int CreateSocket();
    	bool Bind(unsigned short port);
    	XTcp Accept();
    	void Close();
    	int Recv(char* buf, int bufsize);
    	int Send(const char* buf, int bufsize);
    	XTcp();
    	virtual ~XTcp();
    	int socketFd = 0;
    	unsigned short port = 0;
    	char* ip[16] = {};
    };
    
    

    编译错误信息

    1>  正在创建库 \\192.168.3.15\code\xsocket\x64\Debug\xsocket.lib 和对象 \\192.168.3.15\code\xsocket\x64\Debug\xsocket.exp
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_accept,函数 "public: class XTcp __cdecl XTcp::Accept(void)" (?Accept@XTcp@@QEAA?AV1@XZ) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_bind,函数 "public: bool __cdecl XTcp::Bind(unsigned short)" (?Bind@XTcp@@QEAA_NG@Z) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_closesocket,函数 "public: void __cdecl XTcp::Close(void)" (?Close@XTcp@@QEAAXXZ) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_htonl,函数 "public: bool __cdecl XTcp::Bind(unsigned short)" (?Bind@XTcp@@QEAA_NG@Z) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_htons,函数 "public: bool __cdecl XTcp::Bind(unsigned short)" (?Bind@XTcp@@QEAA_NG@Z) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_inet_ntoa,函数 "public: class XTcp __cdecl XTcp::Accept(void)" (?Accept@XTcp@@QEAA?AV1@XZ) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_listen,函数 "public: bool __cdecl XTcp::Bind(unsigned short)" (?Bind@XTcp@@QEAA_NG@Z) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_ntohs,函数 "public: class XTcp __cdecl XTcp::Accept(void)" (?Accept@XTcp@@QEAA?AV1@XZ) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_recv,函数 "public: int __cdecl XTcp::Recv(char *,int)" (?Recv@XTcp@@QEAAHPEADH@Z) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_send,函数 "public: int __cdecl XTcp::Send(char const *,int)" (?Send@XTcp@@QEAAHPEBDH@Z) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_socket,函数 "public: int __cdecl XTcp::CreateSocket(void)" (?CreateSocket@XTcp@@QEAAHXZ) 中引用了该符号
    1>XTcp.obj : error LNK2019: 无法解析的外部符号 __imp_WSAStartup,函数 "public: __cdecl XTcp::XTcp(void)" (??0XTcp@@QEAA@XZ) 中引用了该符号
    1>\\192.168.3.15\code\xsocket\x64\Debug\xsocket.dll : fatal error LNK1120: 12 个无法解析的外部命令
    

    尝试在.h文件中添加

    解决方法

    #pragma comment(lib,"ws2_32.lib")
    
    展开全文
  • 我收到了以下错误消息:错误1错误LNK2019:未解析的外部符号“public:void __thiscall ArrayIntStorage :: sortOwn(void)”(?sortOwn @ ArrayIntStorage @@ QAEXXZ)在函数_main G中引用:\ 08227 \ ACW \ MAIN \ ...
  • C++ 编译错误:LNK 2019

    2020-07-10 21:57:45
    错误 LNK2019 无法解析的外部符号 “public: __thiscall my_util::ReferCounter::ReferCounter(void)” (??0?KaTeX parse error: Expected group after '_' at position 71: …c: static void _̲_cdecl my
  • error : LNK2019 和LNK1120
  • 要修复错误LNK1120,必须首先修复所有LNK2001和LNK2019错误。 可能的原因 有很多方法可以解决此错误。所有这些都涉及对链接器无法解析的函数或变量的引用,也无法为其找到定义。编译器可以识别没有声明符号的时间...
  • 错误 LNK2019 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用 代码如下: (complex.h) ``` #pragma once #include using namespace std; ...
  • error LNK2019:unresolved external symbol 出现错误,一般情况下是指程序不认识函数。具体的说就是.h文件中定义并没有实现,这就是库出现了问题。 遇到这个问题,第一步就要看是哪个函数,然后这个函数用的是哪个库...
  • LNK2019: 无法解析的外部符号
  • 在CSDN中浏览万般始终无法解决,也因此耽搁了将近一个小时,最终在Visual Stdio自己的提示下(提示点击蓝色字体LNK2019在计算机连上了网络的情况下会自动跳转,当然也可点击链接器工具错误 LNK2019 | Microsoft Docs...
  • windows界面下Qt报错问题的解决。
  • 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "void cdecl drawMyContours(class std::basic_string,class cv::Mat &,class std::vector >,class std::allocator > > >)" (?...
  • LNK2019:无法解析的外部符号

    千次阅读 2021-11-18 10:56:15
    LINK2019:无法解析的外部符号 用C++写类的时候,通常会将.cpp和.h文件分开写,即实现和声明分开写了,我在用C++写数据结构时也按照这样的方式写,然后在main中引用写的类.h文件,最终出现这样的错误。 首先确认了...
  • 1、LNK2001找不到实现,一般是配置错误 2、LNK2019能找到实现,版本或系统不匹配 VS编译时一些常见错误积累LNK,比如LNK2019、LNK2001(实时更新)_aishuirenjia的博客-CSDN博客 ...
  • 文章目录对解决Visual Studio的 LNK2019 和 LNK1120 错误的一点经验问题描述尝试分析 对解决Visual Studio的 LNK2019 和 LNK1120 错误的一点经验 问题描述 写了一个 text searching 的代码。该代码设计了数个类,并...
  • _main 中被引用 1>NetClient.obj : error LNK2019: 无法解析的外部符号 _htons@4,该符号在函数 _main 中被引用 1>NetClient.obj : error LNK2019: 无法解析的外部符号 _inet_addr@4,该符号在函数 _main 中被引用 1...
  • vs2022编译c++时出现LNK2019错误
  • Qt Creator 新增使用 Qt库 时编译出现 LNK2019 的解决方法
  • error: LNK2019: 无法解析的外部符号 "private: void __thiscall Q。。。 error: LNK1120: 1 个无法解析的外部命令 原因: 添加的槽函数在(private slots)声明了,但是没有运用 解决方法在声明的.h文件中检查相...
  • 自定义一个类,引用自定义的类,具体的是引用.h文件,死活不成功,一直报error LNK2019无法解析外部符号这个错误,但是引用.cpp文件却是可以成功的。没搞过c++的项目,但是觉得引用cpp文件能编译,肯定不是最佳解。...
  • 创建基本 Winsock 应用程序创建一个新的空项目。将一个空的 C++ 源文件添加到项目中。确保构建环境引用 Microsoft Windows 软件开发工具包 (SDK) 或更早版本的平台软件开发工具包 (SDK) 的 Include、Lib 和 Src 目录...
  • 从项目的链接,项目的属性设置考虑,而不是从代码本身的角度考虑) (如果使用VS的IDE可以在右键项目-属性-链接器的下面着重修改常规-附加库目录-输入-附加依赖项) 下面我们来说下error2019会在什么时候出现?...
  • LNK2019 无法解析的外部符号 #include <stdio.h> #include <math.h> void mian() { double x, s; printf("input number:\n"); scanf("%lf", &x); s = sin(x); printf("sin of %lf is %lf\n...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,058
精华内容 4,423
关键字:

Lnk2019