Когда OpenSSL1.1 создается из командной строки в Windows 10 (x64), произошла ошибка. Сборка x86 прошла успешно. В чем причина ошибки сборки x64? Когда происходит LNK1112, в нем описывается, как изменить целевой компьютер из свойств решения, но можно ли изменить этот параметр с помощью командной строки?
■ Явление
В nmake возникает ошибкапосле генерации make-файла с помощью perl.
Сообщение об ошибке
cl /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MD /W3 /wd4090 /nologo /O2 /I "." /I "crypto\include" /I "include" /I "crypto" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSLDIR=\"C:\\Program Files\\Common Files\\SSL\"" -D"ENGINESDIR=\"C:\\openssl\\build\\win\\x64\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"OPENSSL_USE_APPLINK" -D"NDEBUG" /Zs /showIncludes "crypto\cversion.c" 2>&1 > crypto\cversion.d
IF EXIST .manifest DEL /F /Q .manifest
IF EXIST libcrypto-1_1-x64.dll DEL /F /Q libcrypto-1_1-x64.dll
link /nologo /debug /dll /nologo /debug /implib:libcrypto.lib /out:libcrypto-1_1-x64.dll /def:libcrypto.def @C:\Users\XXXXXXXXX\AppData\Local\Temp\nm5483.tmp || (DEL /Q libcrypto-1_1-x64.* libcrypto.lib && EXIT 1)
crypto\cversion.obj : fatal error LNK1112: module machine type 'X64' conflicts with target machine type 'x86'
■ Environment
VC2019
Perl v5.28.1
Buildtarget OpenSSL 1.1.1d
■ Команда построения (.bat)
Та же ошибка возникает в "vcvars64.bat".
set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build;%PATH%
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
perl Configure no-asm --prefix=C:/openssl/build/win/x64 VC-WIN64A
nmake install