首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VS2008上openssl的链接器错误

VS2008上openssl的链接器错误
EN

Stack Overflow用户
提问于 2010-01-23 15:55:38
回答 2查看 6.1K关注 0票数 1

我安装了OpenSSL0.9.8l,并将include和library路径添加到VS目录。(我以前在安装boost库时也这样做过)。但我仍然收到链接器错误。

不管怎样,我可以解决同样的问题。

错误如下

代码语言:javascript
复制
Error   1   error LNK2019: unresolved external symbol _BN_free referenced in function _main RSA.obj RSA
Error   2   error LNK2019: unresolved external symbol _BN_bn2dec referenced in function _main   RSA.obj RSA
Error   3   error LNK2019: unresolved external symbol _BN_num_bits referenced in function _main RSA.obj RSA
Error   4   error LNK2019: unresolved external symbol _BN_generate_prime referenced in function _main   RSA.obj RSA
Error   5   error LNK2019: unresolved external symbol _BN_new referenced in function _main  RSA.obj RSA
Error   6   fatal error LNK1120: 5 unresolved externals C:\Visual Studio 2008\Projects\RSA\Debug\RSA.exe    RSA
EN

回答 2

Stack Overflow用户

发布于 2010-01-23 16:00:54

您还需要将库名称指定为“附加依赖项”。

在Project | Properties中,您需要转到Linker | Input。在Additional Dependencies中,需要提供库的名称。

更新

您希望在libeay32.lib和ssleay32.lib中进行链接。

您可能有多个称为libeayMT.lib或libeayMDd.lib的版本。这些都是针对不同版本的运行时库构建的,您希望选择与您构建程序的方式相匹配的版本。您也可以在C/C++ | Code Generation | Runtime Library的属性对话框中找到它。

票数 0
EN

Stack Overflow用户

发布于 2010-06-21 16:09:27

OpenSSL默认为Multithreaded DLL (/MD)。就像Klatchko之前所说的那样,你应该首先将你的运行库设置为/MD,并将相应的libeay32MD.lib和ssleay32MD.lib (它们位于我电脑上的\Microsoft Visual Studio9.0\VC\lib中)添加到Linker | Input下的附加依赖项中。(请确保首先将这些.lib文件复制到正确的目录!)

我也有同样的问题,这就是我如何解决它的!

顺便说一句,我在windows上使用的是OpenSSL的二进制版本。您可以在OpenSSL官方网站上的related/binaries下找到它。

干杯!

Z.Zen

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2122540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档