Есть ли в любом случае документация для компиляции libzip для Visual Studio 2010? Все, что я видел с веб-сайта libzip, и Google не вернул никаких результатов.
Libzip с Visual Studio 2010
Ответ 1
Edit:
Прежде чем начать с ответа, представленного здесь, похоже, что это уже не проблема, которую @Thomas Klausner answer ниже.
Ниже приведено решение VS10:
-
Если вы еще этого не сделали, установите CMake
-
Загрузите и извлеките zlib, например.
C:\devel
. Ссылки на скачивание примерно на половину страницы. В настоящее время это обеспечивает версию zlib 1.2.7.-
Чтобы обойти эту ошибку CMake, которая влияет только на 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
-
-
Загрузите и извлеките 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"
Задайте путь к месту, где вы установили zlib, чтобы CMake мог найти файлы zlib include и libs. Опять же, для 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
).
Ответ 2
Я не могу комментировать, поэтому просто в ответ на вопрос Фрейзера: В последние дни версия последнего репозитория libzip должна компилироваться на VS без дополнительных исправлений. Попробуйте это и дайте разработчикам понять, остались ли детали.
Ответ 3
Не могу прокомментировать ответ выше, но пытался заставить его работать, и в конце концов обнаружил, что каталог "Выход" находится под свойствами конфигурации и коммандой в отладке.
Вы можете удалить ALL_BUILD, ZERO_CHECK, INSTALL и PACKAGE, и он будет прекрасно работать без каких-либо ошибок связывания или конкретных ошибок Linux.
Ответ 4
Использование 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);
Ответ 5
Использование
- переменная среды
%ZLIB_DIR%
для пути к zlib-1.2.8, -
%LIBZIP_DIR%
для пути к libzip-1.0.1 - VS 2015 Express Edition и
- файл
%LIBZIP_DIR%/lib/zip_source_filep.c
исправлен в соответствии с http://hg.nih.at/libzip/rev/80457805a1e7,
процесс построения 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 действительно работает из-за коробки иногда...)
Ответ 6
В текущей версии zlib для этого есть вкладка:
zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln
У меня возникла ошибка при загрузке, потому что одна из конфигураций недействительна на моей машине, но перекомпиляция позаботилась об этом. Мне также пришлось изменить свойства проектa > Configuration Properties>Linker>Input>Additional Dependencies
для конфигурации Debug, чтобы изменить zlibwapi.lib
на zlibwapid.lib
.
Ответ 7
В Visual Studio 2015, Win64:
Если вы создадите libzip с таким сообщением:
Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.8").
Все, что вам нужно сделать, это скопировать сгенерированные "zlib.dll/zlibd.zll" и "zlib.lib/zlibd.lib" в начало каталога zlib (где находятся файлы .h/.c).