2

我需要 Openssl 的静态库。我按照这里的说明进行操作。我做的步骤如下:

  1. 运行“Visual Studio 2008 x64 跨工具命令提示符”。
  2. 执行perl 配置 VC-WIN64A no-shared no-idea
  3. 执行ms\do_win64a
  4. 编辑ms\nt.mak并将输出目录中的“32”更改为“64”。
  5. 执行nmake -f ms\nt.mak

完成所有这些之后,我在第 5 步得到一个错误:

Assembling: tmp32\md5-x86_64.asm
tmp32\md5-x86_64.asm(8) : error A2009: syntax error in expression
tmp32\md5-x86_64.asm(9) : error A2009: syntax error in expression
tmp32\md5-x86_64.asm(677) : error A2009: syntax error in expression
tmp32\md5-x86_64.asm(678) : error A2009: syntax error in expression
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC
\BIN\x86_amd64\ml64.EXE"' : return code '0x1'
Stop.

这里出了什么问题?或者任何人都可以提供我可以在 Visual Studio 20005 中使用的 Openssl 静态库的链接吗?

4

3 回答 3

2

我也遇到了这个问题,发现 Perl 太旧了。x86_64-xlate.pl 中的以下行没有生成“PTR”,尽管设置了变量 $PTR:

$func .= "  mov QWORD${PTR}[8+rsp],rdi\t;WIN64 prologue\n";

当我安装 ActiveState Perl 5.16.3 时,它运行良好!

(我只安装了 Visual Studio masm,我猜使用 nasm 生成的代码会起作用,因为 nasm 似乎不需要 PTR 关键字)。

于 2014-04-24T09:15:07.230 回答
2

我找到了这个问题的答案。不知何故,nasm没有安装在我的机器上。这里显示的错误也没有说明 nasm。

于 2012-05-14T06:36:46.867 回答
0

似乎活跃状态在我的环境中也很旧。我不确定我是否使用了正确版本的 nasm,但我的 ml64.exe 通过命令行参数与 nasm 不兼容。人们说我必须将 asm 变量添加到我的环境中。所以我在 crypto\perlasm\x86_64-xlate.pl 文件中进行了全局更改:“PTR}[”到“PTR}[”。只是在变量后添加了一个空格。

于 2016-06-30T18:18:04.677 回答