zoukankan      html  css  js  c++  java
  • error: LNK 2019 无法解析的外部符号

    1.如果你是使用的第三方库,你看一下mainplay这个函数是在那个头文件(比如xx.h)里声明的,然后找到其对应的实现库,将其拷贝到你的Debug目录下,再在你的源文件里添加
    #pragma comment(lib,"xx.lib")
    2.如果你是自己实现的mainplay,那么请确保你声明了该函数后还在源文件里实现了它,而且这个源文件被添加到了你的工程里(这是为了编译该文件,然后将这个函数生成到obj里)

    可能你不太明白。这里简单说一下原理。
    如果是第三方库,通常作者会提供头文件给你,你include了这个头文件,就可以使用其中声明的函数,如果没有问题,那编译可以通过。但是到链接的时候,编译器需要将函数的实现代码链接到最终的可执行代码里,而函数的实现代码通常就在lib或dll中,#pragma comment(lib,"xx.lib")就是告诉编译器去xx.lib里找函数的实现代码。
    而如果是你自己来实现这个函数,只有声明是不够的,还需要你在源代码(.cpp)里去实现它,编译器编译这个cpp的时候会将你的实现代码输出到.obj里,连接器直接去obj里找。

    总的来说,【无法解析的外部符号】这样的错误是因为你只声明了函数原型(编译可通过),但却没有提供函数的实现代码(这会导致链接失败LNK2019)。
  • 相关阅读:
    mysql数据库存储的引擎和数据类型
    mysql数据库基本操作
    【转】linux yum命令详解
    [转]Linux rpm 命令参数使用详解
    【转】Linux GCC常用命令
    [转]linux下logrotate 配置和理解
    [转]Linux下chkconfig命令详解
    [转]linux之top命令
    [转]linux之ps命令
    互联网产品如何做到快与轻
  • 原文地址:https://www.cnblogs.com/xaf-dfg/p/3832401.html
Copyright © 2011-2022 走看看