Как подключить библиотеку OpenSSL на Windows для разработки на C++?

В C++ обращаюсь к библиотеке OpenSSL для создания ключей x25519 и получения хэша sha512. На Debian с установленным OpenSSL код компилируется без проблем таким образом:

g++ main.cpp -lcrytpo -lssl

Установил на Windows 10 OpenSSL 1.1.1g из бинарного пакета (брал тут https://slproweb.com/products/Win32OpenSSL.html не Light-версию). Итого после установки имею c:\Program Files\OpenSSL-Win64\ с папками lib и include и прочим. Добавил %ProgramFiles%\OpenSSL-Win64\lib в переменное окружение LIB, %ProgramFiles%\OpenSSL-Win64\bin в PATH, но компиляция не удалась: поведение такое же, будто ничего не подключалось: undefined reference. После этого добавлял в PATH все возможные и невозможные директории OpenSSL, но ничего не помогло. Пробовал явно указывать при компиляции и линковке путь с библиотеками:

g++ main.cpp "-L%ProgramFiles%\OpenSSL-Win64\lib" -lcrypto -lssl

Ничего результата не дало. Бьюсь не первые сутки. Прошу помощи: как же мне подключить OpenSSL на Windows?


Ответы (1 шт):

Автор решения: mynameiskostya

Святые исходники!

Решение в моем случае: удалил MinGW, установил Strawberry по совету из мануала OpenSSL на GitHub. В переменном окружении PATH также убрал MinGW, оставив C:\Strawberry\c\bin. В этой директории находятся компиляторы и линковщики, есть тот же g++. Помимо этого "из коробки" имеются инклюды и библиотеки OpenSSL.

Завелось легко, как на Debian:

g++ main.cpp -lssl -lcrypto

Так много делал действий и столько ставил софта, что сейчас не могу уверенно сказать в чем была пробелема, но спасибо HolyBlackCat за наводку на разрядности компилятора и библиотеки. Удачи в кодописании.

→ Ссылка