Как скомпилировать openssl только для двух функций - PullRequest
1 голос
/ 26 октября 2011

Я пытаюсь использовать openssl для кодирования простой строки, нет необходимости ее расшифровывать. Я использую функции

AES_set_encrypt_key()
AES_cfb128_encrypt()

Мне нужно, я думаю, только включить:

 #include <openssl/aes.h>

Я не смог найти в Интернете или на сайте openssl инструкции о том, как скомпилировать исходный код для проекта Visual Studio. Кто-нибудь знает, как это сделать? Могу ли я скомпилировать только код, соответствующий этим двум функциям?

Большое спасибо

1 Ответ

4 голосов
/ 26 октября 2011

Я понимаю, что вы хотите использовать эти функции в своем коде.Вам не нужно компилировать OpenSSL для этого.

Установите пакет на свой компьютер для разработки (если вы разрабатываете для Windows, вы можете получить последнюю версию установщика здесь ).Он будет содержать заголовочные файлы, которые необходимо включить в код (они будут в c:\OpenSSL-Win32\include\openssl), статические библиотеки, с которыми необходимо связать приложение (в c:\OpenSSL-Win32\lib\VC), и DLL, которую должно запускать ваше приложение (в c:\OpenSSL-Win32\bin).

Итак, в вашем коде вы будете иметь:

#include <openssl/aes.h>
...
AES_set_encrypt_key(...);
...
AES_cfb128_encrypt(...);
...

Ваш компилятор должен знать путь к заголовку, который вы включили (путь к каталогу openssl), поэтому вам нужно предоставитьЭто.Если вы используете Visual Studio, откройте настройки проекта и добавьте c:\OpenSSL-Win32\include в «Дополнительные каталоги включения».

В разделе компоновщика добавьте ssleay32MDd.lib;libeay32MDd.lib; в Дополнительные зависимости, чтобы ваш компоновщик знал, какие библиотеки OpenSSL искать.Путь к этим библиотекам - c:\OpenSSL-Win32\lib\VC - добавьте в каталог дополнительных библиотек.

Будьте осторожны с этими библиотеками: они должны быть связаны с той же библиотекой времени выполнения, что и ваше приложение.Их суффикс говорит вам, с какой библиотекой времени выполнения они связаны: библиотеки, о которых я упоминал выше, имеют суффикс MDd, что означает, что они используют многопоточную библиотеку отладки (/ MDd) - так что вы включите их, если ваше приложение будет использовать ту же среду выполнения (отметьте это в коде).Настройка Generation-> Runtime Library).

Ваше приложение будет собираться сейчас, но для его запуска ваш двоичный файл должен иметь доступ к OpenSSL DLL libeay32.dll, в зависимости от этого.Скопируйте эту DLL в системный каталог или в каталог, в котором вы запускаете приложение, или добавьте путь c:\OpenSSL-Win32\bin к Path переменной среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...