Я пытаюсь использовать функцию OpenSSL SHA512
в моем проекте на C ++. Для этого я включаю openssl/sha.h
в мои исходные файлы, которые вызывают SHA512
и связывается с библиотекой libeay32.lib
.
SHA512
объявлено в openssl/sha.h
как:
extern "C" {
//...
unsigned char *SHA512(const unsigned char *d, size_t n,unsigned char *md);
//...
}
При ссылке, однако, символ не найден:
mysql_sha.obj : error LNK2019: unresolved external symbol _SHA512 referenced in function _sha512
Проблема, по-видимому, заключается в том, что в libeay32.lib
символ для функции фактически SHA512
(без начального подчеркивания), и я также вижу __imp_SHA512
, когда обычно это будет __imp__SHA512
.
Я использую сборку Win64 OpenSSL 1.0.0d от Shining Light Productions.
Почему символ функции SHA512
не имеет начального подчеркивания? Как мне обойти эту проблему?