2013-07-27 20 views
1

如何從Visual Studio中讀取此錯誤消息?任何線索什麼是缺少的?這是一個複雜的項目,猜測是一個相當無效的方法 - 我寧願確切地知道要查找什麼。如何在Visual Studio中讀取未解析的外部符號錯誤?

1> ------構建開始:項目:加密,配置:debug_shared 64 ------

1>創建庫.. \ lib64的\ PocoCryptod.lib和對象 .. \ lib64下\ PocoCryptod.exp 1> CipherImpl.obj:錯誤LNK2019:無法解析 外部符號EVP_CIPHER_CTX_block_size在功能 引用「公共:虛擬無符號__int64 __cdecl波索::加密::`匿名 命名空間「:: CryptoTransformImpl :: blockSize(void)const「 (?blockSize @ CryptoTransformImpl @?A0xbc3e4780 @ Crypto @ Poco @@ UEBA_KXZ)

1> CipherImpl.obj:錯誤LNK2019:解析外部符號 EVP_CipherInit在函數引用「公衆:__cdecl 波科::加密:: 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)" ([email protected][email protected]@[email protected]@[email protected][email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected]@@Z) 1>CipherImpl.obj : error LNK2019: unresolved external symbol EVP_CipherUpdate referenced in function "public: virtual __int64 __cdecl Poco::Crypto::匿名命名空間「:: CryptoTransformImpl ::變換(無符號字符常量 * __ Int64的,無符號字符*,__的Int64)」(?變換@ CryptoTransformImpl @?A0xbc3e4780 @加密@波科@@ UEAA_JPEBE_JPEAE1 @ Z)這裏

完整的錯誤列表 https://gist.github.com/anonymous/91a76564651be4ac43fc

+0

你忘記與OpenSSL鏈接。 – alexbuisson

回答

2

你讀它作爲

錯誤LNK2019:解析外部符號EVP_CIPHER_CTX_block_size

符號EVP_CIPHER_CTX_block_size無法找到。

在函數引用? 「市民:虛擬無符號__int64 __cdecl波科::加密::`匿名命名空間」:: CryptoTransformImpl ::塊大小(無效)常量「(BLOCKSIZE @ CryptoTransformImpl @ A0xbc3e4780 @加密@波科@ @UEBA_KXZ)

您正試圖使用​​它在CryptoTransformImpl::blockSize(void)const(這是一個匿名命名空間內的內部Poco::Crypto

這可能意味着you didn't link against the library that exports that symbol

0

你缺少含EVP_CipherInit函數的DLL在你的圖書館路徑。

1

EVP _....在OpenSSL中定義。 所以你必須靜態或動態地與OpenSSL鏈接。

+0

我懷疑它與OpenSSL有關。 –

+0

如何正確鏈接到OpenSSL?我添加了「附加庫目錄」,指向包含dll的OpenSSL根文件夾及其包含lib文件的/ lib子目錄,以及包含其他一些lib文件的/ lib/VC子目錄以獲得更好的度量。錯誤仍然是一樣的。 –

+0

不記得OpenSSL許可證,我不知道你的項目,但取決於你如何鏈接檢查是否有不良的副作用lisencing!現在要鏈接一個lib靜態打開你的項目屬性,鏈接器,在額外的lib文件夾中,把完整的路徑放到openSSL lib文件夾。並在附加的lib中,放置openSSL庫的名稱(可能取決於你如何構建它) – alexbuisson

相關問題