libzip with Visual Studio 2010

前端 未结 7 2199
萌比男神i
萌比男神i 2020-12-02 19:39

Is there anyway documentation for compiling libzip for Visual Studio 2010? Everything I have seen from the libzip website and Google has returned no results.

相关标签:
7条回答
  • 2020-12-02 20:25

    Edit:

    Before starting on the answer provided here, it appears that this may no longer be an issue going by @Thomas Klausner's answer below.


    The following should get you a VS10 solution:

    1. If you've not already done so, install CMake

    2. Download and extract zlib to e.g. C:\devel. The download links are about halfway down the homepage. Currently this provides zlib version 1.2.7.

      • To work around this CMake bug which affects 64-bit Windows only, add

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

        to the end of C:\devel\zlib-1.2.7\CMakeLists.txt

    3. Download and extract libzip to e.g. C:\devel

    4. In a VS10 command prompt, 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" This sets the install path to C:\devel\installed\zlib rather than the default C:\Program Files\zlib. For 64-bit Windows, use "Visual Studio 10 Win64" as the -G parameter.

    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" Set the path to wherever you installed zlib so that CMake can find zlib's include files and libs. Again, for 64-bit Windows, use "Visual Studio 10 Win64" as the -G parameter.

    This should result in C:\devel\libzip-0.10.1\build\libzip.sln. It looks like there are a few POSIX-specific problems in the code, but they should hopefully be fairly easy to resolve (e.g. in zipconf.h #include <inttypes.h> needs replaced with #include <stdint.h>; there are some snprintf calls needing replaced e.g. with _snprintf).

    0 讨论(0)
提交回复
热议问题