【问题标题】:OpenSsl adding refrence, getting error, after compiling source openssl in 64bit mode在 64 位模式下编译源 openssl 后,OpenSsl 添加引用,出现错误
【发布时间】:2020-08-26 04:01:50
【问题描述】:

我之前编译过 32 位的 openssl 源代码并在我的 c++ 项目中使用它。但由于某些原因,我想让我的程序为 64 位,并在程序启动时引用我创建的 dll 时出错。

我的 c++ 程序 A.dll 使用 openssl 库。之前在 x86 中使用它没有任何问题,B.dll 使用的是我自己编译的 openssl 32bit

System.DllNotFoundException:无法加载 DLL 'A.dll' 或其依赖项之一:找不到指定的模块。 (0x8007007E)

我在 B.exe 中使用 A.dll。 B.exe 在 c# 中,在我的电脑上使用 x86 A.dll 时可以,但是当将所有 dll 和 b.exe 复制到另一台计算机时,它将无法工作并出现上述错误,因此决定以 64 位编译 openssl,在 A.dll 中使用 openssl 64bit 时,在 c++ 中出现链接错误。

在 x86 之前,我引用了 ssleay32.lib 和 libeay32.lib。

但是在 64bit openssl 编译时找不到这些库,只有 libcrypto.lib 和 libssl.lib。

我怎样才能摆脱这个问题?

【问题讨论】:

    标签: c++ openssl dependencies 64-bit dllnotfoundexception


    【解决方案1】:

    保持简单。让我们从 64 位 openssl 重新开始。

    转到 C:\Program Files\OpenSSL-Win64\(如果您下载 64 位 openssl)

    然后就可以看到libssl1_1-x64.dll等dll文件了。

    还有 include 和 lib 目录,您可能需要包含它们。

    不要使用链接等 dll 文件。只需分别使用 dll 或 lib 文件即可。

    【讨论】:

    • 我如何在我的链接引用中引用不是 .lib 扩展名的 libssl1_1-x64.dll
    • 没人知道问题所在?
    • 在您的项目属性中,在 Linker -> Input 下,添加 libcrypto.lib 和 libssl.lib 作为附加依赖项。然后,确保 libcrypto-1_1-x64.dll 和 libssl-1_1-x64.dll 与依赖于 libcrypto.lib 和 libssl.lib 的库或可执行文件位于同一目录中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 2018-12-26
    • 2014-04-30
    • 2014-02-07
    • 2011-02-14
    • 2013-12-09
    相关资源
    最近更新 更多