Как собрать OpenSSL с MinGW в Windows?

Я хочу создать OpenSSL в Windows с помощью MinGW,
Как я могу это сделать? Пожалуйста, помогите мне.
Спасибо.


person Harry Fox    schedule 21.02.2012    source источник


Ответы (1)


Это отрывок из моего личного практического руководства. С тех пор он был преобразован в сценарий OpenSS раздел, очевидно). Предполагается, что у вас есть рабочая установка MinGW и рабочая консоль MSys.


OpenSSL

Для сборки OpenSSL вам потребуется работающая установка Perl.

Загрузите OpenSSL с его официального сайта и распакуйте архив.

Windows 32/64 bits - MinGW

Эти команды необходимо запускать из консоли MSys.

Для 32 бит:

perl Настроить mingw no-shared no-asm --prefix = / c / OpenSSL

Для 64 бит:

perl Настроить mingw64 no-shared no-asm --prefix = / C / OpenSSL-x64

Потом:

зависеть

делать

сделать установку

Строка make depend требуется только в самой последней версии OpenSSL, если вы указали какие-либо параметры no-....

Обратите внимание, что это скомпилирует OpenSSL в статическом режиме.

Если в какой-то момент вы получите ошибку make (e = 2):, убедитесь, что у вас нет другого make.exe в вашем PATH, или просто введите /bin/make вместо make.


Конечно, вам может потребоваться скомпилировать его с другими параметрами (такими как динамическое связывание или включенный asm). Поэтому смело обращайтесь к справке, которую perl Configure может предоставить, чтобы узнать больше о доступных вариантах.

person ereOn    schedule 21.02.2012
comment
Спасибо за вашу помощь. я выполняю вашу инструкцию и создаю OpenSSL, но он не создает файлы DLL? где это находится? - person Harry Fox; 21.02.2012
comment
@HarryFox: Возможно, вы заметили параметр no-shared, который явно отключает создание разделяемой библиотеки. Поскольку в Windows общие библиотеки - это DLL, у вас есть свой ответ :) Мне никогда не приходилось создавать библиотеки DLL OpenSSL, но я думаю, замена no-shared на shared может помочь. - person ereOn; 21.02.2012
comment
Судя по моему [очень ограниченному] опыту, Strawberry Perl (5.14.2.1 для x64) зависает в MSYS. ActivePerl отлично работал. - person Elliot Cameron; 15.06.2012
comment
Для более поздних версий openssl вам нужно будет запустить make depend перед запуском make, если вы передаете какой-либо из no-xyz флагов в Configure. - person Elliot Cameron; 15.06.2012
comment
@ 3noch: Спасибо. Я обновил и ответ, и исходные инструкции. - person ereOn; 15.06.2012
comment
@ereOn: Я считаю, что вам нужно make depend до _2 _... спасибо за обновление! - person Elliot Cameron; 15.06.2012
comment
Статические выходы по-прежнему называются libcrypto.a и libssl.a или я что-то делаю не так? (Я ожидал расширения .lib.) - person Elliot Cameron; 15.06.2012
comment
@ 3noch: Я тоже получаю .a файлы. Это то, что можно было бы ожидать от MinGW. Что вы ожидали ? - person ereOn; 15.06.2012
comment
@ereOn: У меня создалось впечатление, что сборка с помощью MSYS каким-то образом генерирует собственные двоичные файлы Windows (например, .lib файлы, которые можно связать с любым проектом Windows за пределами MSYS). Я, должно быть, ошибаюсь? - person Elliot Cameron; 15.06.2012
comment
@ 3noch: Не существует такого понятия, как собственный двоичный формат Windows для библиотек. Вы можете создавать библиотеки, которые можно использовать с помощью определенной инструментальной цепочки компилятора. В Windows это может быть cl.exe (Microsoft) или gcc.exe (MinGW). Что касается библиотек C, то иногда полученная библиотека может использоваться обоими компиляторами, потому что они используют аналогичный механизм оформления функций. Если вы хотите создать OpenSSL для Visual Studio, прочтите ссылку, которую я дал, так как она также содержит соответствующие инструкции;) - person ereOn; 16.06.2012
comment
Я знаю, что благодарность обычно не приветствуется, но работа с OpenSSL была настоящей головной болью - я понятия не имею, почему с этой зависимостью так сложно работать. Ваше руководство было отмечено книгой, и на него следует ссылаться на всех страницах INSTALL. Это сработало быстро и идеально. - person RLH; 23.10.2013
comment
@RLH: Спасибо за добрые слова. Мне самому пришлось много с этим бороться. Рад, что мой гид может облегчить жизнь другим людям. - person ereOn; 23.10.2013
comment
отлично, я изо всех сил пытался построить openssl уже 5 дней. ты пришел спасти меня. - person Raiden Core; 24.07.2016
comment
Я сделал тест, все тесты прошли. вы можете добавить это в качестве последнего шага к рецепту, который вы сделали. - person Raiden Core; 24.07.2016
comment
Когда я запускаю любую из команд make в msys, я получаю / bin / sh: / user / bin / perl: нет такого файла или каталога, хотя я просто использовал perl для настройки. - person Braden Steffaniak; 09.01.2017
comment
@BradenSteffaniak Не используйте perl, поставляемый с msys, используйте ActivePerl (который вы должны установить и указать явно). Иначе не получится. - person ereOn; 09.01.2017