尝试在Visual Studio 2012中包含OpenSSL标头:错误LNK2019:未解析的外部符号

时间:2013-11-14 22:19:23

标签: visual-studio openssl

我知道这个问题很常见。事实上,我搜索了很多关于这个问题但我找不到适合我的情况的解决方案。 我正在使用openssl库的C ++ Visual Studio 2012项目中工作。 这是最小的示例代码。

#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。 我从here下载了 Win64 OpenSSL v1.0.1e Light安装程序 并安装它。然后我添加到项目属性 - &gt;配置属性 - &gt; C / C ++ - &GT;常规 - &GT;其他包含目录路径“C:\ OpenSSL-Win64 \ include”。 所以到目前为止,示例代码没有显示Visual Studio中的编译错误。 然后,我还添加了 Linker-&gt;其他库目录,路径“C:\ OpenSSL-Win64 \ lib”,然后在链接器 - &gt;附加依赖,我添加了“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 \ static”中的库,因为静态文件夹中的文件与其中一些文件具有相同的名称,并且可能是冲突。 无论如何,错误是一样的。 哦,我还在PATH环境变量中添加了字符串“C:\ OpenSSL-Win64 \ bin”。 并且...我也试过链接到我安装的Win32 OpenSSL,并在this tutorial之后编译我自己的“libeay32.lib”和“ssleay32.lib”。 32b或64b都不起作用。 我非常绝望,任何人都可以帮助我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

我遇到了像你这样的问题。 问题是我的项目平台是针对WIN32但是我下载了OpenSSL x64,所以我无法调用SSL_library_init ();

OpenSSL for Windows (code.google.com)

希望我的回答对你有帮助,即使我迟到了2年:3