我正在嘗試在我的C++項目中使用OpenSSL的SHA512
函數。爲了做到這一點,我在我的源文件中包含openssl/sha.h
,這些文件調用SHA512
並鏈接到libeay32.lib
庫。爲什麼libeay32中SHA512函數的符號沒有前導下劃線?
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
。
我正在使用Shining Light Productions的Win64 build of OpenSSL 1.0.0d。
爲什麼SHA512
函數的符號沒有前導下劃線?我如何解決這個問題?
太過本地化了一個問題。更適合郵寄名單。 – 2011-03-05 21:01:47
我不同意毛茸茸的。爲什麼這個問題困擾你? – TonyK 2011-03-05 21:11:12
@Shaggy:從Windows特有的角度來看,它只是「本地化」的。我自己並沒有使用這個平臺,但是我明白它由於某種原因仍然非常流行。 – 2011-03-05 21:33:54