Как стать автором
Обновить

Комментарии 17

.lib файл подключать к проекту как ресурс? Че, реально работает? Это я так отстал от прогресса?

Коли речь о msvc, то подключать либы лучше всего прямо в исходниках:

pragma comment(lib, "ssleay32.lib")
pragma comment(lib, "libeay32.lib")
(символ решетки перед словом pragma парсер съедает)
Раньше без no-asm у меня не собиралось — требовала установки nasm
А вас не пугает, что код не работает в режиме _DEBUG — это ведь плохой звоночек и когда-то стрелнет.
если интересно можете попробовать готовый солюшен без приседаний с perl
https://github.com/pavel-pimenov/flylinkdc-r5xx/tree/master/openssl
работает корректно и в Debug и в x64 x86
если слинковаться статически — то студия в _DEBUG покажет место падения
пошлете баг-репорт в OpenSSL и там закроют очередной глючный код.

Свои исходники я формировал вот таким батником

del /S /F /Q .obj
del /S /F /Q
.lib
del /S /F /Q tmp32dll*
del /S /F /Q out32dll*

call "%VS100COMNTOOLS%....\VC\bin\vcvars32.bat"

perl Configure VC-WIN32 no-asm no-shared --prefix=c:\openssl-build-x86
call ms\do_ms
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" -f ms\nt.mak
"Для использования функций библиотеки нам потребуется подключить к проекту заголовочные файлы, но сначала их надо поместить в папку, где установлена Visual Studio" — глупости пишете. Достаточно прописать в свойствах проекта дополнительные каталоги для поиска хидеров.
А ещё при использовании Openssl нужно не забывать инициализировать мьютексы, если планируется многопоточное использование. Пример тут: https://github.com/openssl/openssl/blob/master/demos/threads/mttest.c#L610
переходим в каталог ..\Visual Studio\VC\include и копируем туда папку C:\Temp\openssl\include\openssl
А я бы за такой линейкой по пальцам бил.
какой-то ужас. Есть же куча мануалов:
1) http://developer.covenanteyes.com/building-openssl-for-visual-studio/
2) https://wiki.ripple.com/Visual_Studio_2013_Build_Instructions
3)…

C адекватным описание и иллюстрациями.
Вообще райт вей это собрать openssl во всех конфигурациях и сделать Property Sheet указывающий на расположение хидеров и либ опираясь на переменные $(PlatformToolset), $(Platform), $(Configuration). И тогда подключив его в проект через Property Manager не зависимо от того какой проект в какой конфигурации вы билдите автоматически подтянутся необходимые зависимости.
Простите, но goto? Это явно не тот случай где его нужно использовать. switch обернуть в while и использовать break, а не городить "лапшу" с default "на закуску".
Я ни к кому не отношусь предвзято, но как можно использовать криптографическую библиотеку и писать код, как на первом курсе университета.
Статья для новичка на использование хорошо,
но новичка учить так оформлять проект это просто ужас.

Новичков надо сразу приучать к правильному разноразрядному ( x86, x64) кроссплатформенному (Linux, Windows) оформлению проектов.
А в студии можно под линукс компилировать? Или проект оформлять так, чтобы makefile-ом в линуксе собирать?
Visual Studio под ОС Windows
Visual Studio Code под ОС GNU/Linux

нет. vcproj только под Windows. Можно, например, использовать кроссплатформенную систему автоматизации сборки.
Можно, например, использовать кроссплатформенную систему автоматизации сборки.

А можно подробнее про это?
Вот как. Спасибо.
Мой опыт подсказывает, что для того, чтобы подружить библиотеку OpenSSL с Visual Studio, достаточно скачать готовый архив отсюда. Единственный недостаток такого метода по сравнению с приведённым — при отладке студия не будет показывать исходники OpenSSL, если туда попадёт control flow. Зато пёрл ставить не надо :)
Спасибо за вашу статью, мне помог способ добавить два lib файла openssl как ресурсы в проект. В моем проекте используется еще и boost, для него оказалось достаточно указать путь к папке с lib в свойствах проекта. Почему это не сработало для openssl?

Хочется также дополнить инфой по обновлению openssl до последней версии (обновил так с 1.0 до OpenSSL 3.0 на своем OrangePi PC PLUS на Ubuntu 16, а то уж даже cmake ругался на древность).
git clone git://git.openssl.org/openssl.git sources
cd sources
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl -Wl,-rpath,/usr/local/ssl/lib
make -j8 && make test
sudo checkinstall --install


(да, правило out-of-source build не используется при сборке OpenSSL)


См. https://techlist.top/upgrade-openssl-version-1-1-0-ubuntu-server/

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации