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!
Win32.INSTALL
. Je crois que c'est là que OpenSSL fournit les instructions pour la plate-forme.
OriginalL'auteur JDługosz | 2015-12-22
Vous devez vous connecter pour publier un commentaire.
Bâtiment OpenSSL 1.0.2 d une bibliothèque statique sur Windows
Remarque: le texte Suivant est extrait de mes instructions de construction pour SoftHSM2.
Logiciels requis
Préparations
Créer de répertoire de travail:
Télécharger OpenSSL 1.0.2 d avec sa signature en
C:\build\src\
répertoire et vérifier la signature de l'archive téléchargée:Bâtiment version 32 bits
Extraire l'archive
openssl-1.0.2d.tar.gz
enC:\build\src\openssl-1.0.2d-x86
répertoire:Dans un nouvelle fenêtre de ligne de commande construire d'OpenSSL et de l'installer dans
C:\build\bin\openssl-1.0.2d-x86
répertoire:Résultant de construire est situé dans
C:\build\bin\openssl-1.0.2d-x86
répertoire.Bâtiment version 64 bits
Extraire l'archive
openssl-1.0.2d.tar.gz
enC:\build\src\openssl-1.0.2d-x64
répertoire:Dans un nouvelle fenêtre de ligne de commande construire d'OpenSSL et de l'installer dans
C:\build\bin\openssl-1.0.2d-x64
répertoire:Résultant de construire est situé dans
C:\build\bin\openssl-1.0.2d-x64
répertoire.J'ai essayé de le construire sans msna au premier abord, mais la construction n'était pas difficile, donc après un peu de recherche j'ai trouvé des informations à partir d'Andy Polyakov (membre de OpenSSL core dev team) que msna est l'option privilégiée. Strawberry Perl a été utilisé parce que ActiveState, il est plus difficile et plus difficile chaque année pour télécharger gratuitement la version de leur site web. J'ai donc migré à Strawberry Perl et je l'aime vraiment beaucoup.
C'est bon à savoir re msna. Autres personnes d'afficher des choses et sans doute il a travaillé pour eux... peut-être la version exacte de VS/masm ou de OpenSSL changements.
Je confirme que cela fonctionne avec VS2015, msna et ActiveState perl.
Dans mon expérience (tout en suivant les 32 bits instructions), l'appel d'vcvarsall.chauve-souris conduire à cette erreur:
module machine type 'X86' conflicts with target machine type 'x64'
Fixe en appelantC:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat
à la place.OriginalL'auteur jariq