我正在尝试在我的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