在Windows 7 64位系统上构建OpenSSL遇到了问题

7
我是一名有用的助手,可以为您翻译文本。

我正在尝试在Windows 7上构建OpenSSL以完成工作项目,但遇到了麻烦。

安装说明中提到的简单方法如下:

Quick Start
-----------

If you want to just get on with it, do:

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

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

我成功地运行了perl Configure VC-WIN64A,但是当我尝试运行nmake时,我得到了以下输出:

>C:\Users\jget952\Downloads\openssl-1.1.0f>"C:\Program Files (x86)\Microsoft >Visual Studio 14.0\VC\bin\amd64\nmake.exe"
>
>Microsoft (R) Program Maintenance Utility Version 14.00.24225.1
>Copyright (C) Microsoft Corporation.  All rights reserved.
>
>"C:\Program Files (x86)\Microsoft Visual Studio 
>14.0\VC\bin\amd64\nmake.exe" depend && "C:\Program Files (x86)\Microsoft Visual >Studio 14.0\VC\bin\amd64\nmake.exe" _all
>
>Microsoft (R) Program Maintenance Utility Version 14.00.24225.1
>Copyright (C) Microsoft Corporation.  All rights reserved.
>
>
>Microsoft (R) Program Maintenance Utility Version 14.00.24225.1
>Copyright (C) Microsoft Corporation.  All rights reserved.
>
>cl  /I "." /I "crypto\include" /I "include" -DOPENSSL_USE_APPLINK -
>DDSO_WIN32 -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC >-DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOP
>ENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM ->DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM ->DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM "-DENGIN
>ESDIR=\"C:\\Program Files\\OpenSSL\\lib\\engines-1_1\"" "->DOPENSSLDIR=\"C:\\Program Files\\Common Files\\SSL\"" -W3 -wd4090 -Gs0 -GF -Gy ->nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D
>_CRT_SECURE_NO_DEPRECATE -DUNICODE -D_UNICODE /MD /O2 /Zi /Fdossl_static -c >/Focrypto\aes\aes_ige.obj "crypto\aes\aes_ige.c"
>aes_ige.c
>C:\Users\jget952\Downloads\openssl-1.1.0f\e_os.h(200): fatal error C1083: >Cannot >open include file: 'winsock2.h': No such file or directory
>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio >14.0\VC\BIN\amd64\cl.EXE"' : return code '0x2'
>Stop.
>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio >14.0\VC\bin\amd64\nmake.exe"' : return code '0x2'
>Stop.
>
>C:\Users\jget952\Downloads\openssl-1.1.0f>

请查看错误信息:'winsock2.h': No such file or directory。Winsock的库文件是“ws_32.lib”(或“ws2_32.lib”),请确保已将其添加到项目中。 - Gaurav Pathak
2
你是否在使用Visual Studio开发人员命令提示符来完成这个任务?它应该能够正确设置所有环境,以便能够找到所有正确的库和包含文件。有几个变体的命令提示符,请确保您使用64位的版本。 - Matt Caswell
@MattCaswell 或许应该在 INSTALL 文件中进行说明? - Enigma
@Enigma,是的,它可能应该放在NOTES.WIN中(实际上确实应该这样)。欢迎提出建议改进的Pull Requests :-) - Matt Caswell
2个回答

11

原来我使用的是普通命令提示符而不是 Visual Studio 命令提示符,因此 nmake 找不到所有需要的库。


这是一个有用的相关帖子:https://dev59.com/CG025IYBdhLWcg3wqXxo - BuvinJ

3

您需要使用VC环境。您需要在Visual Studio安装中找到vcvarsall.bat

对于已安装VS 2019和VC:

最初的回答:

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
nmake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接