文章目录
  1. 1. 错误1
    1. 1.1. 原因1: 未使用zlib的链接库
    2. 1.2. 原因2:在使用静态库时即使包含了zlibstat.lib没有定义宏“ZLIB_WINAPI”
  2. 2. 错误2
    1. 2.1. 原因:两个项目SAFESEH设置不同
  3. 3. 错误3
    1. 3.1. 原因:与libcmt库冲突了

错误1

error LNK2019: unresolved external symbol _deflateEnd@4

原因1: 未使用zlib的链接库

  • 解决:
    1
    2
    #pragma comment(lib, "zlibstat.lib") // for static lib
    #pragma comment(lib, "zdll.lib") // for dll lib

原因2:在使用静态库时即使包含了zlibstat.lib没有定义宏“ZLIB_WINAPI”

  • 解决:
    在项目属性中 C/C++ -> Preprocessor -> Preprocessor Definitions 添加“ZLIB_WINAPI”
    注意:这个必须在项目中添加,使用#define来添加是无效的。

错误2

error LNK2026: module unsafe for SAFESEH image

原因:两个项目SAFESEH设置不同

  • 解决:
    设置项目属性: Linker -> Advanced -> [Image Has Safe Exception Handlers] = “No”
    注意:这个必须在项目中添加,使用#pragma来添加是无效的。

错误3

error LNK2005: __call_reportfault already defined in LIBCMTD.lib(invarg.obj)或类似其他的error LNK2005:

原因:与libcmt库冲突了

  • 解决:
    1
    #pragma comment(linker, "/NODEFAULTLIB:libcmt.lib")
文章目录
  1. 1. 错误1
    1. 1.1. 原因1: 未使用zlib的链接库
    2. 1.2. 原因2:在使用静态库时即使包含了zlibstat.lib没有定义宏“ZLIB_WINAPI”
  2. 2. 错误2
    1. 2.1. 原因:两个项目SAFESEH设置不同
  3. 3. 错误3
    1. 3.1. 原因:与libcmt库冲突了