Подтвердить что ты не робот

Libzip с Visual Studio 2010

Есть ли в любом случае документация для компиляции libzip для Visual Studio 2010? Все, что я видел с веб-сайта libzip, и Google не вернул никаких результатов.

4b9b3361

Ответ 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).