gpt4 book ai didi

windows - 64 位 Windows 上的 OpenSSL

转载 作者:可可西里 更新时间:2023-11-01 10:37:44 25 4
gpt4 key购买 nike

我正在尝试在 Windows 8 上构建和链接 OpenSSL,我发现它真的令人望而生畏。我应该提一下,我知道以下帖子

但它们都没有解决我真正需要知道的问题。因此,我决定以新帖子的形式与大家分享我的经验!

首先,我可以在 Win32 操作系统上成功构建和链接 OpenSSL,并且它运行良好。我知道 Windows 8 带有 WOW64 . “WOW64 is an x86 emulator that allows 32-bit Windows-based applications to run seamlessly on 64-bit Windows ”,尽管当我运行基于 32 位 Windows 7 构建的应用程序时,我收到错误消息“程序无法启动,因为您的计算机缺少 libeay32.dll……”,而“< strong>libeay32.dll”显然在那里并且没有丢失。

为了避免注册表丢失东西,我尝试在 Windows 8 上以 32 位模式构建 OpenSSL。构建成功完成,应用程序正确链接,没有错误。当我再次运行该应用程序时,我收到了相同的错误消息。

然后我尝试根据以下步骤在 64 位模式下构建它;

set PATH=%PATH%;c:\perl\bin;c:\nasm;
call "c:\visual studio\2012\vc\vcvarsall.bat" x64
perl Configure VC-WIN64A no-shared no-idea
call ms\do_win64a
copy ms\libeay32.def ms\libeay64.def /Y
copy ms\ssleay32.def ms\ssleay64.def /Y

ssed -e s/out32/out64/g ms\ntdll.mak | ssed … > ms\ntdll-64.mak
ssed -e s/out32/out64/g ms\nt.mak | ssed … > ms\nt-64.mak

nmake -f ms\ntdll-64.mak
nmake -f ms\ntdll-64.mak test
nmake -f ms\ntdll-64.mak install

在这种情况下,我在构建过程中收到了很多警告,主要是关于“数据转换和数据丢失的可能性”,但它被构建了,而“test”失败了“install”生成输出。

现在,当我尝试使用新的“libeay64.lib 和 ssleay64.lib”在 Visual Studio 中构建我的解决方案时,我收到几乎数千条“未解析的外部符号”错误

因此,如果可能,请回答以下问题;

  1. 为什么我无法在 Windows 8(64 位)上运行我的 32 位应用程序?
  2. 为什么在 Windows 8 上正确构建 OpenSSL(32 位模式),仍然遇到同样的错误?
  3. 在 OpenSSL 构建(64 位模式)中,我做错了什么吗?

我正在使用 OpenSSL ver 1.0.1eVisual Studio 2012nasm 2.10.07

谢谢

最佳答案

我正在部分回答你的问题:

您可以在 WOW64 中的 64 位下运行 32 位。

对于64位下的OpenSSL,visual studio下有一个编译器选项/WX,意思是把警告当作错误处理。从 makefile 中删除该编译器选项。你会收到很多警告。但是 OpenSSL 会被编译。

因为大多数模块都没有编译,也没有生成它们的目标文件,这就是您收到链接器错误的原因。如果它解决了您的问题,请告诉我。

关于windows - 64 位 Windows 上的 OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com