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

    我的环境为: Win764 + VS2005 + zlib1.2.8

    zlib1.2.8我使用VS2010来编译。

    -------------------------------------------------------------------------------------------------

    我导入zlib库的代码如下:

    #include "zlib128/zlib.h"
    // #pragma comment(lib, "zlib128/zlibwapi.lib")  // 链接zlib动态库
    #pragma comment(lib, "zlib128/zlibstat.lib")  // 链接zlib静态库

    编译使用zlib的工程,出现错误信息如下:

    1>Gzip.obj : error LNK2019: 无法解析的外部符号 _deflateEnd 

    1>Gzip.obj : error LNK2019: 无法解析的外部符号 _deflate
    1>Gzip.obj : error LNK2019: 无法解析的外部符号 _deflateInit2_
    1>Gzip.obj : error LNK2019: 无法解析的外部符号 _inflateEnd
    1>Gzip.obj : error LNK2019: 无法解析的外部符号 _inflate
    1>Gzip.obj : error LNK2019: 无法解析的外部符号 _inflateInit2_

    fatal error LNK1120: 6 个无法解析的外部命令error LNK2019: 无法解析的外部符号 _deflate

    从错误信息可以看出,在我使用的每个zlib库函数的前面都多出了一个下划线,如 _deflate,

    通过查看zlibwapi.dll的导出函数,发现相应的函数前面并没有下划线,也就难道编译会链接错误了。

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    解决思路:

    zlib.h头文件,定义了zlib库的导出函数原型,如:ZEXTERN intZEXPORT deflateEnd OF((z_streamp strm));

    注意红色的ZEXPORT ,其原型在zconf.h文件里面定义:

    #ifndef ZEXPORT
    #  define ZEXPORT 
    #endif

    看到了吗,默认的ZEXPORT宏,只是个空符号罢了,而实际是其应该表示函数的调用方式。

    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    解决方法:

    在zconf.h文件将ZEXPORT宏的定义改成下面的形式即可:

    #ifndef ZEXPORT
    #  define ZEXPORT WINAPI
    #endif

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    【转】Windows Socket网络编程(二)套接字编程原理
    获取本地IP地址,并在IP CONTROL控件中显示出来
    PAT 1021 Deepest Root[并查集、dfs][难]
    1025 PAT Ranking[排序][一般]
    PAT 1028 List Sorting[排序][一般]
    PAT 1023 Have Fun with Numbers[大数乘法][一般]
    PAT 1026 Table Tennis[比较难]
    Andrew NgML第十章应用机器学习的建议
    PAT 1020 Tree Traversals[二叉树遍历]
    PAT 1022 Digital Library[map使用]
  • 原文地址:https://www.cnblogs.com/lidabo/p/7150705.html
Copyright © 2011-2022 走看看