我安装了OpenSSL0.9.8l,并将include和library路径添加到VS目录。(我以前在安装boost库时也这样做过)。但我仍然收到链接器错误。
不管怎样,我可以解决同样的问题。
错误如下
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发布于 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的属性对话框中找到它。
发布于 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
https://stackoverflow.com/questions/2122540
复制相似问题