とにかく、Visual Studio 2010 用に libzip をコンパイルするためのドキュメントはありますか? 私が libzip Web サイトから見たものすべてと Google は結果を返しませんでした。
8 に答える
編集:
ここで提供される回答を開始する前に、これは以下の @Thomas Klausner の回答によると、もはや問題ではないようです。
以下は、VS10 ソリューションを取得する必要があります。
CMakeをまだインストールしていない場合は、インストールします。
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()
C:\devel\zlib-1.2.7\CMakeLists.txt の最後まで
libzipをダウンロードして解凍します。
C:\devel
VS10 コマンド プロンプトで、
cd C:\devel\zlib-1.2.7
mkdir build && cd build
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
パラメーターとして使用します。msbuild /P:Configuration=Debug INSTALL.vcxproj
msbuild /P:Configuration=Release INSTALL.vcxproj
cd C:\devel\libzip-0.10.1
mkdir build && cd build
cmake .. -G"Visual Studio 10" -DCMAKE_PREFIX_PATH="C:\devel\installed\zlib"
CMake が zlib のインクルード ファイルとライブラリを見つけられるように、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
コメントできないので、Fraser の回答に加えて: 最近、libzip の最新のリポジトリ バージョンは、追加のパッチなしで VS でコンパイルする必要があります。試してみて、部品がまだ不足しているかどうかを開発者に知らせてください。
上記の回答にコメントすることはできませんが、これを機能させようとしていて、最終的に、構成プロパティの下の出力ディレクトリとデバッグ中のコマンドが見つかりました。
ALL_BUILD、ZERO_CHECK、INSTALL、および PACKAGE を削除すると、リンク エラーや Linux 固有のエラーが発生することなく正常にビルドされます。
libzip-1.0.1、zlib-1.2.8、および VS Community 2013 を使用します。
パスに追加:
C:\Program Files (x86)\CMake\bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319
cmake 行は次のようになりました。
cmake .. -G"Visual Studio 12 Win64" -DCMAKE_INSTALL_PREFIX="C:\devel\installed\zlib"
devel\libzip-1.0.1\lib\zip_source_filep.c:189 が変更されました:
mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
に:
mask = umask(_S_IREAD | _S_IWRITE);
使用する
%ZLIB_DIR%
zlib-1.2.8 へのパスの環境変数、%LIBZIP_DIR%
libzip-1.0.1 へのパス- VS 2015 Express Edition、および
- http://hg.nih.at/libzip/rev/80457805a1e7
%LIBZIP_DIR%/lib/zip_source_filep.c
に従ってパッチを適用したファイル、
zlib と libzip をビルドするプロセスは次のようになります。
zlib の構築
> cd /d %ZLIB_DIR% && md build & cd build
> cmake .. -G"Visual Studio 14 2015 Win64"- DCMAKE_INSTALL_PREFIX="%ZLIB_DIR%"
> msbuild /P:Configuration=Debug INSTALL.vcxproj
> msbuild /P:Configuration=Release INSTALL.vcxproj
libzip のビルド
> cd /d %LIBZIP_DIR% && md build & cd build
> cmake .. -G"Visual Studio 14 2015 Win64" -DCMAKE_PREFIX_PATH="%ZLIB_DIR%"
> msbuild /P:Configuration=Debug ALL_BUILD.vcxproj
> msbuild /P:Configuration=Release ALL_BUILD.vcxproj
終わり!
(つまり、@MikeLischke、CMakeは実際にすぐに使用できる場合があります...)
現在の zlib バージョンには、これに対する contrib があります。
zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln
構成の 1 つがマシンで有効でなかったため、ロード時にエラーが発生しましたが、再コンパイルによって処理されました。Configuration Properties>Linker>Input>Additional Dependencies
デバッグ構成をに変更zlibwapi.lib
するには、プロジェクトのプロパティ>も変更する必要がありましたzlibwapid.lib
。