2

如何从 Visual Studio 读取此错误消息?关于究竟缺少什么的任何线索?这是一个复杂的项目,猜测是一种相当无效的方法——我更愿意确切地知道要寻找什么。

1>----- 构建开始:项目:加密,配置:debug_shared x64 ------

1> 创建库 ..\lib64\PocoCryptod.lib 和对象 ..\lib64\PocoCryptod.exp 1>CipherImpl.obj:错误 LNK2019:未解析的外部符号 EVP_CIPHER_CTX_block_size 在函数“public: virtual unsigned __int64 __cdecl Poco::Crypto: :`匿名命名空间'::CryptoTransformImpl::blockSize(void)const " (?blockSize@CryptoTransformImpl@?A0xbc3e4780@Crypto@Poco@@UEBA_KXZ)

1>CipherImpl.obj:错误 LNK2019:未解析的外部符号 EVP_CipherInit 在函数“public: __cdecl Poco::Crypto:: anonymous namespace'::CryptoTransformImpl::CryptoTransformImpl(struct evp_cipher_st const *,class std::vector<unsigned char,class std::allocator<unsigned char> > const &,class std::vector<unsigned char,class std::allocator<unsigned char> > const &,enum Poco::Crypto::A0xbc3e4780::CryptoTransformImpl::Direction)" (??0CryptoTransformImpl@?A0xbc3e4780@Crypto@Poco@@QEAA@PEBUevp_cipher_st@@AEBV?$vector@EV?$allocator@E@std@@@std@@1W4Direction@0123@@Z) 1>CipherImpl.obj : error LNK2019: unresolved external symbol EVP_CipherUpdate referenced in function "public: virtual __int64 __cdecl Poco::Crypto::anonymous namespace'::CryptoTransformImpl::transform(unsigned char const *,__int64,unsigned char *,__int64)”中引用(?transform@CryptoTransformImpl@?A0xbc3e4780@Crypto@Poco@@UEAA_JPEBE_JPEAE1@Z)

完整的错误列表在这里 https://gist.github.com/anonymous/91a76564651be4ac43fc

4

3 回答 3

3

你把它读成

错误 LNK2019:未解析的外部符号 EVP_CIPHER_CTX_block_size

EVP_CIPHER_CTX_block_size找不到符号。

在函数“public: virtual unsigned __int64 __cdecl Poco::Crypto::`anonymous namespace'::CryptoTransformImpl::blockSize(void)const”(?blockSize@CryptoTransformImpl@?A0xbc3e4780@Crypto@Poco@@UEBA_KXZ)中引用

您正在尝试使用它CryptoTransformImpl::blockSize(void)const(在Poco::Crypto.

这可能意味着您没有链接到导出该符号的库

于 2013-07-27T11:54:02.647 回答
1

EVP_.... 在 OpenSSL 中定义。因此,您必须静态或动态地与 OpenSSL 链接。

于 2013-07-27T11:55:10.827 回答
0

EVP_CipherInit您在库路径中缺少包含该函数的 dll 。

于 2013-07-27T11:50:31.087 回答