严重错误 LNK1120: 16 个未解决的外部引用 openssl: ssleay32MD.lib,libeay32MD.lib

3

我刚接触OpenSSL,并尝试运行一个在线可用的dhclient程序,网址为http://www.josuegomes.com/codeblog/dhclient.htm

在执行时,我遇到了以下错误:

dhclient.cpp 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _ERR_print_errors_fp,该符号在函数 "void __cdecl handle_error(char const *,int,char const *)" (?handle_error@@YAXPBDH0@Z) 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_load_error_strings,该符号在函数 "void __cdecl init_OpenSSL(void)" (?init_OpenSSL@@YAXXZ) 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_library_init,该符号在函数 "void __cdecl init_OpenSSL(void)" (?init_OpenSSL@@YAXXZ) 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_CTX_set_cipher_list,该符号在函数 "struct ssl_ctx_st * __cdecl setup_ctx(void)" (?setup_ctx@@YAPAUssl_ctx_st@@XZ) 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_CTX_new,该符号在函数 "struct ssl_ctx_st * __cdecl setup_ctx(void)" (?setup_ctx@@YAPAUssl_ctx_st@@XZ) 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _TLSv1_client_method,该符号在函数 "struct ssl_ctx_st * __cdecl setup_ctx(void)" (?setup_ctx@@YAPAUssl_ctx_st@@XZ) 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_CTX_free,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_free,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_shutdown,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_read,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_write,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_connect,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_set_bio,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _SSL_new,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _BIO_ctrl,该符号在函数 _main 中被引用 1>dhclient.obj: error LNK2019: 无法解析的外部符号 _BIO_new_connect,该符号在函数 _main 中被引用 1>C:\Users\Rucha\Documents\Visual Studio 2010\Projects\emptyprojectssl\Debug\emptyprojectssl.exe: 致命错误 LNK1120: 16 个无法解析的外部命令
我已添加了包含文件和库路径,同时我的运行时库是MD,并且我已将ssleay32MD.lib和libeay32MD.lib添加到外部依赖项中。
请帮忙解决。

1
你最终解决了这个问题吗?在编译OpenSSL库时,我必须确保它们使用正确的Visual Studio SDK和正确的平台进行编译。然后,确保它们位于链接器->输入->附加依赖项中。 - CaptainBli
2个回答

2

我曾遇到类似的问题并解决了。 尝试确认你是否使用了正确的库,也就是说,如果你使用了x64库并以32位编译,则会出现相同的错误。 祝编码愉快!


0

我认为调试库是ssleay32MDd.liblibeay32MDd.lib(注意有“d”后缀)。


谢谢,弗雷泽。我尝试了所有可能的组合,但仍然得到相同的错误! - rsule

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接