使用Visual Studio 2010的libzip

jud*_*rke 13 c++

有没有为Visual Studio 2010编译libzip的文档?我从libzip网站和Google看到的所有内容都没有返回任何结果.

Fra*_*ser 27

编辑:

在开始这里提供的答案之前,似乎这可能不再是@Thomas Klausner在下面给出的答案.


以下应该为您提供VS10解决方案:

  1. 如果您还没有这样做,请安装CMake

  2. 下载并提取zlib到例如C:\devel.下载链接大约是主页的一半.目前,这提供了zlib 1.2.7版.

    • 要解决仅影响64位Windows的此CMake错误,请添加

      if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND MSVC)
        set_target_properties(zlibstatic PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
      endif()
      
      Run Code Online (Sandbox Code Playgroud)

      到C:\ devel\zlib-1.2.7\CMakeLists.txt的末尾

  3. 下载并解压缩libzip到例如C:\devel

  4. VS10命令提示符下,cd C:\devel\zlib-1.2.7

  5. mkdir build && cd build

  6. cmake .. -G"Visual Studio 10" -DCMAKE_INSTALL_PREFIX="C:\devel\installed\zlib" 这会将安装路径设置为C:\devel\installed\zlib而不是默认路径C:\Program Files\zlib.对于64位Windows,"Visual Studio 10 Win64"请将其用作-G参数.

  7. msbuild /P:Configuration=Debug INSTALL.vcxproj

  8. msbuild /P:Configuration=Release INSTALL.vcxproj

  9. cd C:\devel\libzip-0.10.1

  10. mkdir build && cd build

  11. cmake .. -G"Visual Studio 10" -DCMAKE_PREFIX_PATH="C:\devel\installed\zlib" 设置zlib安装位置的路径,以便CMake可以找到zlib的包含文件和库.同样,对于64位Windows,"Visual Studio 10 Win64"请将其用作-G参数.

这应该导致C:\devel\libzip-0.10.1\build\libzip.sln.看起来代码中存在一些POSIX特定的问题,但它们应该很容易解决(例如在zipconf.h中#include <inttypes.h>需要替换#include <stdint.h>;有些snprintf调用需要替换,例如_snprintf).