在Visual Studio 2012上的静态ZLIB(1.2.8)链接

亨利

为了上帝的爱,我无法静态链接ZLIB库。我已经奋斗了几个小时,没有成功。好吧,我已按照本教程进行操作,并成功地将zlibstat.lib和zlibwapi.lib编译为32位。建立我的项目使用ZLIB文件夹与库(链接>常规>附加库目录),并设置zlibwapi.lib(只)作为依赖关系(链接器>输入>附加依赖)后,我它得到的工作,但是,是一个动态链接(我需要使用ZLIB dll分发我的应用程序)。我通常在Debug上使用动态链接,在Release上使用静态链接。

我尝试查找zlibstat.lib到底是什么以及它的用途(如果不是用于静态链接的话),并假设后缀为“ stat”。

是否有任何预处理器要添加到我的项目中(例如ZLIB_STATIC之类的东西),以使用ZLIB的静态链接?或者我应该从未从zlibstat项目中删除ZLIB_WINAPI,就像上面的链接告诉我要做的那样吗?静态链接ZLIB是不可能的吗(那么zlibstat.lib是做什么用的?)?

我很迷路。任何帮助是极大的赞赏。

编辑(其他信息):

错误:

error LNK2001: unresolved external symbol _inflateInit_@12
error LNK2001: unresolved external symbol _inflate@8
error LNK2001: unresolved external symbol _inflateEnd@4

连结:

与我将zlibwapi.lib添加为依赖项的动态链接(起作用的)不同,对于静态链接,我试图实现的是我将zlibstat.lib添加为依赖项!没有添加其他库!

这个问题可能看起来像这样(有点)。

亨利

我终于设法解决了我的问题。对于那些最终遇到这种问题的人,以下是解决方法:

如果你跟着我的第一篇教程,你会删除ZLIB_WINAPIzlibstat项目的预处理器。但是,在设置了自己的使用ZLIB的项目(设置ZLIB依赖项路径,LIB依赖项库等)之后,我“意外地”ZLIB_WINAPI在使用ZLIB的头文件中包含/定义了该死的宏,就在包含“ zlib.h”之前”。

对此感到奇怪的是,当在调试模式下(使用动态链接)启动应用程序时,一切都成功了,并且运行得很好,没有任何警告,或者在发布模式下(使用静态链接),它崩溃了。

因此,为了清楚起见,本教程告诉我们从zlibstat项目中删除ZLIB_WINAPI预处理器,该项目会生成静态库,而zlibvc项目的ZLIB_WINAPI预处理器中包含换句话说,这意味着如果我们为每个配置(调试/发行版)使用不同的链接,则必须添加ZLIB_WINAPI或不添加宏!

ZLIB_WINAPI如果使用动态链接(zlibwapi.lib),并且在zlibvc项目保持不变的情况下(假设您正确地遵循了上面的链接的说明),则在包含“ zlib.h”之前定义宏,并且如果ZLIB_WINAPIzlibstat中删除了该,则不要定义项目(如本教程告诉我们的那样)!

我在自己的项目中使用的一个有用的宏如下:

// Since we used dynamic linking for debug, we have to define the ZLIB_WINAPI
#if defined(_WIN32) && defined(_DEBUG)
    #define ZLIB_WINAPI
#endif
#include <zlib.h>

事情变得非常混乱,我真的希望我足够清楚。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Visual Studio 2012的静态链接msvcrt中的异常

来自分类Dev

Visual Studio中的静态和动态链接

来自分类Dev

将Libtorrent与Visual Studio静态链接

来自分类Dev

使用Visual Studio 14静态链接Lua

来自分类Dev

Visual Studio:项目参考与链接静态库

来自分类Dev

在Visual Studio中静态链接ffmpeg库

来自分类Dev

将Libtorrent与Visual Studio静态链接

来自分类Dev

链接错误:在Visual Studio中使用NuGet安装Boost zlib筛选器(2012)

来自分类Dev

链接错误:在Visual Studio中使用NuGet安装Boost zlib筛选器(2012)

来自分类Dev

在Visual Studio的链接命令上取消/ DEBUG

来自分类Dev

在Visual Studio中构建和链接V8

来自分类Dev

Visual Studio Designer崩溃(在Windows 8上)

来自分类Dev

Visual Studio在Parallels Desktop 8上崩溃

来自分类Dev

Microsoft是否永久删除了Visual Studio 2012 Express链接?

来自分类Dev

如何在Visual Studio 2012中链接.a文件?

来自分类Dev

OCI(Oracle呼叫接口)链接错误-Visual Studio 2012

来自分类Dev

Visual Studio C ++静态链接该怎么办

来自分类Dev

Visual Studio 2012错误LNK2019:无法解析的外部符号,与正在运行的静态库链接

来自分类Dev

如何设置链接以从OSX上的终端打开Visual Studio Code?

来自分类Dev

Visual Studio项目链接文件

来自分类Dev

Visual Studio 2012上的FlyCapture SDK问题

来自分类Dev

Visual Studio 2012上的FlyCapture SDK问题

来自分类Dev

Visual Studio 2012上的参考错误

来自分类Dev

在Visual Studio 2012上无法打开项目

来自分类Dev

(Visual Studio)尝试将Microsoft库与SFML库静态链接时出现很多链接器错误

来自分类Dev

无法在Windows 8上安装任何Visual Studio(速成版)

来自分类Dev

MacBook上的Visual Studio

来自分类Dev

Visual Studio 上的布吉

来自分类Dev

Windows 8 for Visual Studio开发

Related 相关文章

  1. 1

    使用Visual Studio 2012的静态链接msvcrt中的异常

  2. 2

    Visual Studio中的静态和动态链接

  3. 3

    将Libtorrent与Visual Studio静态链接

  4. 4

    使用Visual Studio 14静态链接Lua

  5. 5

    Visual Studio:项目参考与链接静态库

  6. 6

    在Visual Studio中静态链接ffmpeg库

  7. 7

    将Libtorrent与Visual Studio静态链接

  8. 8

    链接错误:在Visual Studio中使用NuGet安装Boost zlib筛选器(2012)

  9. 9

    链接错误:在Visual Studio中使用NuGet安装Boost zlib筛选器(2012)

  10. 10

    在Visual Studio的链接命令上取消/ DEBUG

  11. 11

    在Visual Studio中构建和链接V8

  12. 12

    Visual Studio Designer崩溃(在Windows 8上)

  13. 13

    Visual Studio在Parallels Desktop 8上崩溃

  14. 14

    Microsoft是否永久删除了Visual Studio 2012 Express链接?

  15. 15

    如何在Visual Studio 2012中链接.a文件?

  16. 16

    OCI(Oracle呼叫接口)链接错误-Visual Studio 2012

  17. 17

    Visual Studio C ++静态链接该怎么办

  18. 18

    Visual Studio 2012错误LNK2019:无法解析的外部符号,与正在运行的静态库链接

  19. 19

    如何设置链接以从OSX上的终端打开Visual Studio Code?

  20. 20

    Visual Studio项目链接文件

  21. 21

    Visual Studio 2012上的FlyCapture SDK问题

  22. 22

    Visual Studio 2012上的FlyCapture SDK问题

  23. 23

    Visual Studio 2012上的参考错误

  24. 24

    在Visual Studio 2012上无法打开项目

  25. 25

    (Visual Studio)尝试将Microsoft库与SFML库静态链接时出现很多链接器错误

  26. 26

    无法在Windows 8上安装任何Visual Studio(速成版)

  27. 27

    MacBook上的Visual Studio

  28. 28

    Visual Studio 上的布吉

  29. 29

    Windows 8 for Visual Studio开发

热门标签

归档