Comment construire OpenSSL dans VS2015: x86cpuid.l'asm est un fichier vide

J'ai besoin de construire OpenSSL pour un projet à l'aide de VS2015, 32-bit.

Les instructions que j'ai trouvé sont http://developer.covenanteyes.com/building-openssl-for-visual-studio/ et une mise à jour/version éditée aurait à l'aide de VS2015
au http://blog.box.kr/?p=953 .

Dans le répertoire où j'ai déballé la distribution, j'ai d'abord fait cl pour vérifier que j'avais une sclérose en plaques Compilateur construire invite (que défini par leur fichier de commandes), et perl -v pour s'assurer que j'avais Perl. Ensuite,

perl Configure VC-WIN32   no-idea no-mdc2 no-rc5  --prefix=e:\some\path
ms\do_ms
nmake -f ms\nt.mak

et au cours de cette dernière étape, j'obtiens:

Building OpenSSL
    perl .\util\copy-if-different.pl ".\crypto\buildinf.h" "tmp32\buildinf.h"
Copying: ./crypto/buildinf.h to tmp32/buildinf.h
    perl .\util\copy-if-different.pl ".\crypto\opensslconf.h" "inc32\openssl\opensslconf.h"
Copying: ./crypto/opensslconf.h to inc32/openssl/opensslconf.h
    ml /nologo /Cp /coff /c /Cx /Zi /Fotmp32\x86cpuid.obj tmp32\x86cpuid.asm
Assembling: tmp32\x86cpuid.asm
tmp32\x86cpuid.asm(1) : error A2088:END directive required at end of file
NMAKE : fatal error U1077: '"D:\@Prog-Charon\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\ml.EXE"' : return code '0x1'
Stop.

Je trouve que E:\C++Libs\openssl-1.0.2e\tmp32\x86cpuid.asm est un fichier de longueur nulle.

Ce que je voulez vraiment est d'avoir (à construire ou trouver des ready-made) une bibliothèque statique pour un projet qui va utiliser la dynamique de la bibliothèque run-time.


Mise à jour: si j'exécute l'étape manuellement,

perl crypto\x86cpuid.pl win32 > tmp32\x86cpuid.asm

puis, quand le makefile arrive à ce fichier, il me donne

    ml /nologo /Cp /coff /c /Cx /Zi /Fotmp32\x86cpuid.obj tmp32\x86cpuid.asm
Assembling: tmp32\x86cpuid.asm
tmp32\x86cpuid.asm(35) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(59) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(64) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(70) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(75) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(90) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(98) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(105) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(165) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(182) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(186) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(322) : error A2085:instruction or register not accepted in current CPU mode
tmp32\x86cpuid.asm(335) : error A2085:instruction or register not accepted in current CPU mode
NMAKE : fatal error U1077: '"D:\@Prog-Charon\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\ml.EXE"' : return code '0x1'

Or, il arrive que la ligne de 35 etc. est cpuid, qui est le point de l'ensemble de ce fichier!

Vous devriez jeter un coup d'oeil à Win32.INSTALL. Je crois que c'est là que OpenSSL fournit les instructions pour la plate-forme.

OriginalL'auteur JDługosz | 2015-12-22