Почему после Perl нет ms\do_ms.bat Configure VC-WIN64A?

Я компилирую OpenSSL с Visual Studio 2015. Я установил:

  1. Visual Studio 2015 в Windows 10.

  2. ActivePerl-5.24.0.2400-MSWin32-x64-300558.

  3. NASM-2.11.08-win32.

  4. Исходный код OpenSSL от git clone git://git.openssl.org/openssl.git

Что я сделал:

  1. Создайте командный файл со строками ниже.

    @call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
    @set path=%path%;C:\Users\gchen\AppData\Local\nasm
    
  2. perl Configure VC-WIN64A —prefix=C:\test\openssl

Теперь я должен сделать ms\do_win64a, но я не могу найти этот командный файл. В каталоге ms есть файлы

2016/08/22  17:39    <DIR>          .    
2016/08/22  17:39    <DIR>          ..    
2016/08/21  14:23             3,646 applink.c    
2016/08/21  14:23             1,247 cmp.pl    
2016/08/21  14:23             2,815 segrenam.pl    
2016/08/21  14:23             4,541 tlhelp32.h    
2016/08/21  14:23             1,137 uplink-common.pl    
2016/08/21  14:23             1,472 uplink-ia64.pl    
2016/08/21  14:23             1,111 uplink-x86.pl   
2016/08/21  14:23             1,594 uplink-x86_64.pl   
2016/08/21  14:23             4,225 uplink.c   
2016/08/21  14:23             2,268 uplink.h

но нет ms-win64a.bat.

Что я сделал не так?

Ответ 1

Процесс сборки изменился с новой версией 1.1.0. Возможно, вы уже разобрались, но все равно:

Начиная с версии 1.1.0 больше нет файлов ms\do_*.bat.

Вместо этого выполните следующие шаги:

x32 компиляция в Windows:

perl Configure VC-WIN32
nmake
nmake test

x64A компиляция в Windows:

perl Configure VC-WIN64A
nmake
nmake test

Настройте среду компилятора как прежде, и укажите свой путь к Perl (и NASM, если он используется).

Источник: файл INSTALL, включенный в версию 1.1.0.

Ответ 2

С момента выпуска новой версии 1.1.0 в исходном коде отсутствует ms\. И если вам интересно, что вы должны изменить для создания статической версии в настоящее время (что приводит к одному файлу .exe без каких-либо DLL). Вот полный справочник.

Вам понадобятся следующие предварительные условия:

Ожидается, что вы установите все эти инструменты в системном масштабе и добавьте их в свою переменную окружения %PATH%.

После того, как вы получили все, что нам нужно, просто выполните следующие простые шаги:

  • Откройте командную строку VS2015 x64 из командной строки в меню "Пуск". Появится командная строка.
  • Создайте каталог C:\build и введите следующую команду в командной строке:

    • cd c:\build
  • Загрузите исходные коды zlib и OpenSSL в каталог build с помощью следующих команд:

    • git clone https://github.com/madler/zlib
    • git clone https://github.com/openssl/openssl
  • Сначала мы должны создать статический zlib. Для этого нам нужно будет отредактировать некоторые файлы конфигурации:

    • Перейдите в исходную папку zlib: cd C:\build\zlib
    • Отредактируйте файл win32\Makefile.msc:

      • Найдите строку, начинающуюся с CFLAGS
      • Замените -MD на -GL -MT -Zc:wchar_t-
      • Найдите строку, начинающуюся с LDFLAGS
      • Замените -debug на -opt:icf -dynamicbase -nxcompat -ltcg /nodefaultlib:msvcrt
  • Постройте zlib, используя следующую команду (требуется меньше минуты):

    • nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -DNDEBUG -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
  • Скопируйте полученные файлы в каталог OpenSSL:

    • xcopy zlib.h C:\build\openssl\
    • xcopy zconf.h C:\build\openssl\
    • xcopy zlib.lib C:\build\openssl\
    • xcopy zlib.pdb C:\build\openssl\
  • Перейдите в OpenSSL source: cd C:\build\openssl\ и настройте его, чтобы использовать static zlib и читать файлы конфигурации (openssl.cnf) из каталога C:\Windows\.

    • perl Configure VC-WIN64A no-shared zlib no-zlib-dynamic threads --prefix=C:\Windows\
  • Теперь сделайте следующие изменения для C:\build\openssl\makefile:

    • Найдите строку, которая начинается с: CFLAG
    • Добавить: /Zc:wchar_t- /GL /Zi
    • Найдите строку, которая начинается с: LDFLAGS
    • Замените /debug на /incremental:no /opt:icf /dynamicbase /nxcompat /ltcg /nodefaultlib:msvcrt
    • Найдите строку, которая начинается с: EX_LIBS
    • Замените ZLIB1 на zlib.lib
    • Сохранить изменения
  • Постройте OpenSSL, выпустив команду nmake (займет около 15 минут).

Результирующий файл ~ 3MB openssl.exe будет расположен в каталоге C:\build\openssl\apps\. Он полностью переносится, поскольку все библиотеки DLL включены. Если вам нужен пользовательский файл конфигурации, скопируйте C:\build\openssl\apps\openssl.cnf в каталог C:\Windows\ и отредактируйте его по своему вкусу.

Ответ 3

Следующие команды должны быть выполнены с правами администратора

  1. perl Configure VC- WIN64A --prefix = C:\Build-OpenSSL-VC32-Debug-DLL
  2. nmake -f makefile
  3. nmake install

Начиная с версии 1.1.0, больше не требуется запускать файлы ms\do _ *. Bat.