Как подключить библиотеку 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 шт):
Святые исходники!
Решение в моем случае: удалил MinGW, установил Strawberry по совету из мануала OpenSSL на GitHub. В переменном окружении PATH также убрал MinGW, оставив C:\Strawberry\c\bin. В этой директории находятся компиляторы и линковщики, есть тот же g++. Помимо этого "из коробки" имеются инклюды и библиотеки OpenSSL.
Завелось легко, как на Debian:
g++ main.cpp -lssl -lcrypto
Так много делал действий и столько ставил софта, что сейчас не могу уверенно сказать в чем была пробелема, но спасибо HolyBlackCat за наводку на разрядности компилятора и библиотеки. Удачи в кодописании.