微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试在Qt项目中使用CryptoPP库时出现LNK2001错误

如何解决尝试在Qt项目中使用CryptoPP库时出现LNK2001错误

我正在尝试在Qt项目中使用CryptoPP lib。 我首先使用Visual C ++ 2019构建了Crytplib。我将运行时选项更改为MDd(多线程调试DLL)。它生成了cryptlib.lib。

在Qt中,我添加了:

LIBS += -L$$PWD/../libs/CryptoPP/x64/Output/Release/ -lcryptlib
INCLUDEPATH += $$PWD/../libs/CryptoPP

编译会出现以下错误

cryptlib.lib(keccak_core.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(ecp.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(rng.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(rijndael_simd.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(des.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(gfpcrypt.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(hmac.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(gf2n.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(ec2n.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(modes.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(oaep.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(sha3.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(pssr.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(nbtheory.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(sha_simd.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(rijndael.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(hrtimer.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(base64.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(files.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(mqueue.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(dll.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(pubkey.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(pkcspad.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(asn.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(rsa.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(iterhash.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(sha.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(randpool.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(osrng.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(algparam.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(queue.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(basecode.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(hex.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(cryptlib.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(misc.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(filters.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(integer.obj) : error LNK2001: symbole externe non résolu __CxxFrameHandler4
cryptlib.lib(keccak_core.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(ecp.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(rng.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(rijndael_simd.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(des.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(gfpcrypt.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(hmac.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(gf2n.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(ec2n.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(modes.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(oaep.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(sha3.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(pssr.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(nbtheory.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(sha_simd.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(rijndael.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(hrtimer.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(base64.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(files.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(mqueue.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(dll.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(pubkey.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(pkcspad.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(asn.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(rsa.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(iterhash.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(sha.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(randpool.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(osrng.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(algparam.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(queue.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(basecode.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(hex.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(cryptlib.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(misc.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(filters.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(integer.obj) : error LNK2001: symbole externe non résolu __GSHandlerCheck_EH4
cryptlib.lib(integer.obj) : error LNK2019: symbole externe non résolu __std_reverse_trivially_swappable_1 référencé dans la fonction "void __cdecl std::reverse<unsigned char *>(unsigned char * const,unsigned char * const)" (??$reverse@PEAE@std@@YAXQEAE0@Z)
debug\prxQWT.exe : Fatal error LNK1120: 3 externes non résolus

似乎很多人都无法使它与Qt一起使用,而且似乎没有人拥有正确的方法。顺便说一句,我正在使用Qt 5.12.0。

解决方法

我终于解决了这个问题。这是因为我用MSVC2019构建Crypto ++,而Qt是用MSVC2015构建。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。