Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接到openssl 64位静态库_C++_Visual Studio_Openssl_Linker_Static Libraries - Fatal编程技术网

C++ 链接到openssl 64位静态库

C++ 链接到openssl 64位静态库,c++,visual-studio,openssl,linker,static-libraries,C++,Visual Studio,Openssl,Linker,Static Libraries,我正在使用Visual Studio 2017,我正在尝试链接到由我构建的64位版本静态库openssl 1.0.2,如图所示。实际上,我的库(也是静态库)直接使用openssl函数,可执行文件链接到此库。我尝试了两种方法: 将openssl的符号放入mylib.lib(使用VS mylib项目属性中名为“Library”的选项卡) 在可执行文件的项目中使用链接器链接到openssl(libeay32.lib,ssleay32.lib)和我的库 两者都会导致链接器错误,如 error LNK

我正在使用Visual Studio 2017,我正在尝试链接到由我构建的64位版本静态库openssl 1.0.2,如图所示。实际上,我的库(也是静态库)直接使用openssl函数,可执行文件链接到此库。我尝试了两种方法:

  • 将openssl的符号放入mylib.lib(使用VS mylib项目属性中名为“Library”的选项卡)
  • 在可执行文件的项目中使用链接器链接到openssl(libeay32.lib,ssleay32.lib)和我的库
两者都会导致链接器错误,如

error LNK2001: unresolved external symbol EVP_EncryptInit_ex
关于mylib.lib库


我使用Visual Studio提供的
dumpbin.exe
查看了libeay32.lib(在使用图书管理员方法时也查看了mylib.lib),并且定义了
\u EVP\u EncryptInit\u ex
(注意begging处的
\ucode>)符号。所以我想知道openssl是否可能定义了
\u EVP\u EncryptInit\u ex
,并且可执行文件正在尝试链接到
EVP\u EncryptInit\u ex
?原因和解决办法是什么?另外:如何检查尝试链接到的符号是否可执行?

是的,我知道它来自何处,但错误消息表明可执行文件正在查找符号,而没有前导
。但是我不知道我在这里是否正确,请发布构建openssl的步骤。解决了,原来我是在初始化VC进行32位构建(
vsvars32.bat
),需要ofc 64位设置(
vcvars64.bat
)。你的问题迫使我再次查找构建脚本,我得到了启示:)是的,我知道它来自何处,但错误消息表明可执行文件正在查找符号,而没有前导
。但是我不知道我在这里是否正确,请发布构建openssl的步骤。解决了,原来我是在初始化VC进行32位构建(
vsvars32.bat
),需要ofc 64位设置(
vcvars64.bat
)。你的问题迫使我再次查阅建筑脚本,我得到启示:)