Компиляция библиотек OpenSSL в Visual Studio 2015

Сборка будет выполняться в Visual Studio 2015.

Инструменты и приготовления.

  • Скачать исходный код библиотеки OpenSSL. На сегодняшний день (январь 2016 г.) крайняя версия – OpenSSL-1.0.2e – OpenSSL Project.
  • Установленная с настройками по умолчанию Visual Studio 2015.
  • Установить NASM для компиляции на платформе x86 с использованием элементов ассемблера. Добавить путь к nasm.exe в %PATH% – Index of /pub/nasm/releasebuilds.
  • Установить Active Perl для Windows. Крайняя версия – ActivePerl 5.22.
  • Установить Python 2.7 для Windows. Добавить путь к директории Python 2.7 в %PATH% – Python 2.7.11.
  • Установить 7-zip. 7-Zip.
  • Рабочая директория для компиляции: c:\src.
    1. Создаем две директории – для 32-бит и 64-бит версий библиотеки:
      cd C:\src
      md OpenSSL
      cd OpenSSL
      md openssl-1.0.2e-32bit
      md openssl-1.0.2e-64bit
    2. Копируем исходный код библиотеки OpenSSL в каждую директорию: openssl-1.0.2e-32bit и openssl-1.0.2e-64bit.

Сборка версий.

  1. Собираем 32-бит версию release.
    1. Открываем окно консоли VS2015 x86 Native Tools Command Prompt.
    2. Переходим в директорию openssl-1.0.2e-32bit и выполняем настройку:
      cd OpenSSL\openssl-1.0.2a-32bit
      perl Configure VC-WIN32 --prefix=C:\src\OpenSSL\Build-VC-32-release
    3. Далее собираем Visual C++ makefiles с зависимостями конфигурации сборки в каталоге ms:
      ms\do_nasm.bat
    4. После того как файл сборки создан вызываем nmake для компиляции и линковки библиотеки:
      nmake -f ms\nt.mak
    5. В приведенных выше командах nmake использовался ms\nt.mak makefile потому что собирались статические библиотеки. Если использовать ms\ntdll.mak, то вместо статической будет собрана DLL динамическая версия библиотеки.
    6. После того как сборка библиотеки будет завершена проверить ее, выполнив тестовый набор. Перейти в поддиректорию out32 перед запуском тестов:
      cd out32
      ..\ms\test

      Итоговое сообщение должно быть: passed all tests
    7. Выполнить заключительный шаг, чтобы сформировать пакет и установить двоичные файлы OpenSSL:
      cd ..
      nmake -f ms\nt.mak install
    8. В итоге, в директории C:\src\OpenSSL\Build-VC-32-release должен быть готовый набор 32-бит версии release.
  2. Собираем 32-бит версию debug.
    1. В текстовом редакторе открываем файл ms/nt.mak и заменить все вхождения /Zi на /Z7 (в двух местах).
    2. Открываем окно консоли VS2015 x86 Native Tools Command Prompt.
    3. Выполняем следующие команды:
      cd openssl-1.0.2a-32bit
      perl Configure debug-VC-WIN32 --prefix=C:\src\OpenSSL\Build-VC-32-debug
      ms\do_nasm.bat
      nmake -f ms\nt.mak clean
      nmake -f ms\nt.mak
      cd out32.dbg
      ..\ms\test
      cd ..
      nmake -f ms\nt.mak install
    4. В итоге, в директории C:\src\OpenSSL\Build-VC-32-debug должен быть готовый набор 32-бит версии debug.