如何从Visual Studio中读取此错误消息?关于究竟缺少什么的任何线索?这是一个复杂的项目,猜测是一种相当无效的方法 - 我更愿意确切知道要寻找什么。
1> ------ Build build:Project:Crypto,配置: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 ::`anonymous namespace':: CryptoTransformImpl :: blockSize(void)const“ (?BLOCKSIZE @ CryptoTransformImpl @?A0xbc3e4780 @加密@ @@波索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::
匿名命名空间':: CryptoTransformImpl :: transform(unsigned char const *,__ int64,unsigned char *,__ int64)“(?transform @ CryptoTransformImpl @?A0xbc3e4780 @ Crypto @Poco @@ UEAA_JPEBE_JPEAE1 @ Z)
这里有完整的错误列表 https://gist.github.com/anonymous/91a76564651be4ac43fc
答案 0 :(得分: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
内的匿名命名空间内。
这可能意味着you didn't link against the library that exports that symbol。
答案 1 :(得分:1)
EVP _....在OpenSSL中定义。 因此,您必须静态或动态地与OpenSSL链接。
答案 2 :(得分:0)
您缺少包含库路径中EVP_CipherInit
功能的dll。