2013-11-14 21 views
0

我知道这个问题很常见。事实上,我对这个问题进行了很多搜索,但是我找不到适合我的案例的解决方案。 我正在使用openssl库的C++ Visual Studio 2012项目中工作。 这是一个最小示例代码。试图在Visual Studio 2012中包含OpenSSL头文件:错误LNK2019:无法解析的外部符号

#include <iostream> 
#include <stdio.h> 
//OpenSSL 
#include <openssl/bio.h> 
#include <openssl/ssl.h> 
#include <openssl/err.h> 
#include <openssl/x509.h> 

using namespace std; 

int main(){ 
    SSL_library_init(); 

    return 0; 
} 

我在Windows7-64b机器上运行Visual Studio 2012 Proffesional。 我下载了Win64 OpenSSL v1.0.1e Light安装程序here 并安装它。然后我添加到项目属性 - >配置属性 - > C/C++ - >常规 - >其他包含目录路径“C:\ OpenSSL-Win64 \ include”。 所以到目前为止,示例代码并未在Visual Studio中显示编译错误。 然后,我还加入了Linker-> Additional库目录,路径为“C:\ OpenSSL-Win64 \ lib”,然后在Linker-> Additional Dependencies,我加了“libeay32.lib;”和“ssleay32.lib”。 然而,当我试图编译我得到这个错误:

1>------ Build started: Project: Client, Configuration: Debug Win32 ------ 
1> Client.cpp 
1>Client.obj : error LNK2019: unresolved external symbol _SSL_library_init referenced in function _main 
1>c:\users\gabi\documents\visual studio 2012\Projects\Project1\Debug\Client.exe : fatal error LNK1120: 1 unresolved externals 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

我也试图与OpenSSL库的其余部分,因为它可能是SSL_init_function()不属于“libeay32.lib”或“ ssleay32.lib”。所以,我在源代码中添加:

#pragma comment(lib, "libeay32.lib") 
#pragma comment(lib, "ssleay32.lib") 
#pragma comment(lib, "VC\\libeay32MD.lib") 
#pragma comment(lib, "VC\\libeay32MDd.lib") 
#pragma comment(lib, "VC\\libeay32MT.lib") 
#pragma comment(lib, "VC\\libeay32MTd.lib") 
#pragma comment(lib, "VC\\ssleay32MD.lib") 
#pragma comment(lib, "VC\\ssleay32MDd.lib") 
#pragma comment(lib, "VC\\ssleay32MT.lib") 
#pragma comment(lib, "VC\\ssleay32MTd.lib") 

这些都是库,除非它们是在子文件夹中的那些“VC \静”,因为在静态文件夹中的文件具有相同的名称,其中一些和这可能是一场冲突。 无论如何,它的错误是一样的。 哦,我还在PATH环境变量中添加了字符串“C:\ OpenSSL-Win64 \ bin”。 而且......我还通过链接到我装过了Win32的OpenSSL和编译我自己的“libeay32.lib”和“ssleay32.lib”以下this tutorial尝试。 32b或64b都不起作用。 我对此非常绝望,任何人都可以帮助我? 谢谢!

回答

1

我有像你这样的问题。 问题是,我的项目的平台是为WIN32,但我下载了OpenSSL的64位,所以我不能叫SSL_library_init();

OpenSSL for Windows (code.google.com)

希望我的回答可以帮助你,甚至我迟到了2年:3

+0

是的,太晚了。甚至不记得我是否终于设法解决它。无论如何,我想你的解决方案会运作良好。谢谢! – user2957378

+0

链接已死亡 – whoan

相关问题