c++ - 带有 Visual Studio 2010 的 libzip

标签 c++

如何为 Visual Studio 2010 编译 libzip?

最佳答案

编辑:

在开始这里提供的答案之前,@Thomas Klausner 的 answer 似乎不再是问题。下面。


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

  1. 如果您尚未安装,请安装 CMake

  2. 下载并解压zlib例如C:\devel .下载链接位于主页的一半左右。目前这提供了 zlib 版本 1.2.7。

    • 解决方法 this CMake bug仅影响 64 位 Windows,添加

      if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND MSVC)
        set_target_properties(zlibstatic PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
      endif()
      

      到 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 )。

关于c++ - 带有 Visual Studio 2010 的 libzip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507893/

相关文章:

c++ - “安全”DLL 注入(inject)

c++ - 展开新对象并将其添加到函数内的数组

c++ - 重新排列 ListView 项

c++ - while (cin >> *pchar) 在 Ctrl-Z 之后等待进一步输入

c++ - 在不使用 ignore() 的情况下读取二进制文件(C++)时忽略 N 个字节?

c++ - Boost 安装失败 : cannot find -lrt

c++ - 为什么不修改关联容器的键?

c++ - 转换为 bool 时没有得到 1

c++ - 3D 相机出现意外滚动

c++ - 更改 Windows 8 开始屏幕颜色