INSTALL.W64の指示に従った後、2つの問題があります。
静的ライブラリ(リリースとデバッグの両方)をコンパイルするには、次のことを行う必要があります。
#すべての関心のある出力ディレクトリ OUT_D = out64.dbg #すべての一時的なマックの出力ディレクトリ TMP_D = tmp64.dbg #ヘッダーファイルの出力ディレクトリ INC_D = inc64 INCO_D = inc64\openssl
1.0.1cソースを使用して、この方法で問題を解決しました。
このブロックを_util/pl/VC-32.pl
_行の直前の_$o='\\';
_に追加します。
_if ($debug)
{
$ssl .= 'd';
$crypto .= 'd';
}
_
このブロックを_util/pl/VC-32.pl
_のif ($debug)
行の直前に追加します。
_if ($FLAVOR =~ /WIN64/)
{
$out_def =~ s/32/64/;
$tmp_def =~ s/32/64/;
$inc_def =~ s/32/64/;
}
_
次に、すべての品種を作成します。
_setenv /x86 /release
Perl Configure VC-WIN32 --prefix=build -DUNICODE -D_UNICODE
ms\do_ms
nmake -f ms\ntdll.mak
setenv /x64 /release
Perl Configure VC-WIN64A --prefix=build
ms\do_win64a.bat
nmake -f ms\ntdll.mak
setenv /x86 /debug
Perl Configure debug-VC-WIN32 --prefix=build -DUNICODE -D_UNICODE
ms\do_ms
move /y ms\libeay32.def ms\libeay32d.def
move /y ms\ssleay32.def ms\ssleay32d.def
nmake -f ms\ntdll.mak
setenv /x64 /debug
Perl Configure debug-VC-WIN64A --prefix=build
ms\do_win64a.bat
move /y ms\libeay32.def ms\libeay32d.def
move /y ms\ssleay32.def ms\ssleay32d.def
nmake -f ms\ntdll.mak
_
コナン を使用します。インストールと使用は非常に簡単です。
すぐに使用できるファイルをリクエストできます。たとえば、Linuxx64またはVisualStudio 2012での使用の場合。手順の例は次のとおりです。
conan install OpenSSL/1.0.2g@lasote/stable -s Arch="x86_64" -s build_type="Debug" -s compiler="gcc" -s compiler.version="5.3" -s os="Linux" -o 386="False" -o no_asm="False" -o no_rsa="False" -o no_cast="False" -o no_hmac="False" -o no_sse2="False" -o no_zlib="False" ...
公式文書によると:
「驚かれるかもしれません。64ビットアーティファクトは実際にout32 *サブディレクトリに出力され、* 32.dllで終わる名前が付けられています。64ビットコンパイルターゲットは、これまでのところ、従来の32ビットWindowsターゲットを段階的に変更しています。多数のコンパイルフラグには「32」というラベルが付いていますが、32ビットターゲットと64ビットターゲットの両方に適用されます。」
したがって、最初の答えはもはや必要ありません。
手順はここにあります:
https://wiki.openssl.org/index.php/Compilation_and_Installation#W64
Cygwinでビルドしている場合は、MSDEVPATHが既にVisual Studioディレクトリに設定されていると仮定して、次のスクリプトを使用できます。
echo "Building x64 OpenSSL"
# save the path of the x86 msdev
MSDEVPATH_x86=$MSDEVPATH
# and set a new var with x64 one
MSDEVPATH_x64=`cygpath -u $MSDEVPATH/bin/x86_AMD64`
# now set vars with the several lib path for x64 in windows mode
LIBPATH_AMD64=`cygpath -w $MSDEVPATH_x86/lib/AMD64`
LIBPATH_PLATFORM_x64=`cygpath -w $MSDEVPATH_x86/PlatformSDK/lib/x64`
# and set the LIB env var that link looks at
export LIB="$LIBPATH_AMD64;$LIBPATH_PLATFORM_x64"
# the new path for nmake to look for cl, x64 at the start to override any other msdev that was set previously
export PATH=$MSDEVPATH_x64:$PATH
./Configure VC-WIN64A zlib-dynamic --prefix=$OUT --with-zlib-include=zlib-$ZLIB_VERSION/include --with-zlib-lib=zlib-$ZLIB_VERSION/x64_lib
# do the deed
ms/do_win64a.bat
$MSDEVPATH_x86/bin/nmake -f ms/ntdll.mak ${1:-install}
この質問が最初に行われてから、ビルド手順が変更されました。新しい手順は ここ にあります。 PerlとNASMをインストールする必要があり、開発者コマンドPromptを使用する必要があることに注意してください。
このハウツーを書いている時点で、OpenSSLの最新バージョンは1.1.1aです。
環境:
前提条件:
PerlとNASMの両方がPATH環境変数にあることを確認してください。
X64のコンパイル:
手順4はオプションです。
X86のコンパイル:
手順4はオプションです。