c++ - OpenSSL:Nmake fatal error U1077: 'ias':返回代码 '0x1'

标签 c++ windows perl visual-c++ openssl

我尝试在 Windows 10 64 位上设置 OpenSSL,遵循到目前为止的说明,在安装 Visual Studio 后,我尝试使用 Visual c++ 2008 命令提示符在 openssl 目录中进行 nmake,但出现以下错误:

 "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl"  "-omakefile" "crypto\include\internal\bn_conf.h.in" > crypto\include\internal\bn_conf.h
        "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl"  "-omakefile" "crypto\include\internal\dso_conf.h.in" > crypto\include\internal\dso_conf.h
        "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl"  "-omakefile" "include\openssl\opensslconf.h.in" > include\openssl\opensslconf.h
        ias -d debug -ocrypto\aes\aes-ia64.obj "crypto\aes\aes-ia64.asm"
'ias' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'ias' : return code '0x1'
Stop.

如果我尝试编译 32 位版本,此错误会有所不同。这会导致引用 NASM 时出现错误,|我尝试安装但没有成功。

有人可以提出解决方案吗?

感谢您花时间阅读我的问题。

最佳答案

该问题与长文件名无关。 @Sebastian 没有安装 ias。他不应该使用ias无论如何。

您需要nasm如果您希望 OpenSSL 利用汇编语言优化。

如果没有,您可以将 no-asm 传递给 Configure

取决于您的操作系统

on Windows (only pick one of the targets for configuration):

$ perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE }

您需要VC-WIN32VC-WIN64A。这是how I did it1.0.1g 是该帖子发布时的当前版本。

  1. 下载最新的源代码发行版
  2. 启动适用的 VC 命令提示符
  3. (可选)获取 zlib,构建 DLL
  4. 获取 nasm 并构建可执行文件
  5. 如果您确实要求 zlib,请将目录添加到 INCLUDE 和 LIB:

    C:\…\openssl-1.0.1g> set INCLUDE=%INCLUDE%;C:\…\zlib-1.2.8
    C:\…\openssl-1.0.1g> set LIB=%LIB%;C:\…\zlib-1.2.8
    
  6. 运行C:\…\openssl-1.0.1g> perl 配置VC-WIN64A zlib-dynamic --openssldir=C:\opt\OpenSSL

  7. 运行C:\…\openssl-1.0.1g> ms\do_win64a

  8. 运行C:\…\openssl-1.0.1g> nmake -f ms\ntdll.mak

  9. cd 到out32dll,然后运行..\ms\test

  10. 确保所有测试均通过:

  11. 安装方法如下:

    C:\…\openssl-1.0.1g\out32dll> cd ..
    C:\…\openssl-1.0.1g> nmake -f ms\ntdll.mak install
    

PS:如果您正在构建与 Strawberry Perl 一起使用的 OpenSSL,请注意 perl.exe 将使用 gcc 进行编译,因此,您应该使用 Strawberry Perl 附带的 gcc 来构建OpenSSL。

如果您正在构建用于将使用 MSVC 工具链构建的项目的库,则可以忽略此注释。

关于c++ - OpenSSL:Nmake fatal error U1077: 'ias':返回代码 '0x1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38572948/

相关文章:

c++ - 更改数组中声明的变量

WPF 窗口 Left 属性与左屏幕边框对齐后具有负值

Windows 关机计时器结合中止计时器

Perl 如何从作为数组元素的文件句柄中读取一行

c++ - 将任何泛型函数作为 C++ 参数传递

c++ - 在 Qt : Can I output to `stdout` , 中,我可以使用 qDebug() 输出到 `stderr` 吗?

arrays - 将数组变成字符串

perl - 如何在 perl 中创建和使用字节数组?

c++ - 文件无法将准确数据写入文本文件

C - 将 system() 函数输出打印到文件中