MinGW ではなく MSVC ツールチェーン(nmake)を使って OpenSSL 3.5.1 をコンパイルする方法をまとめます。
1. Visual Studio 2022 の準備
「C++によるデスクトップ開発」ワークロードを含めてインストールします。インストール後も nmake が見つからない場合は、次の環境変数を手動で追加してください。
MSVC 関連パス
Path
C:\VS2022\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64
C:\VS2022\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x86
C:\VS2022\Common7\IDE
C:\VS2022\Common7\Tools
LIB
C:\VS2022\VC\Tools\MSVC\14.44.35207\lib\x64
INCLUDE
C:\VS2022\VC\Tools\MSVC\14.44.35207\include
Windows SDK 関連パス
Path
C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64
INCLUDE
C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
LIB
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64
設定後は nmake /? で正常にヘルプが表示されることを確認してください。
2. ビルド依存ツールのインストール
Perl
winget install StrawberryPerl.StrawberryPerl
NASM
winget install nasm.NASM
両ツールとも PATH が自動的に通ります。
3. OpenSSL ソースのビルド
cd openssl-3.5.1
:: 32 ビット
perl Configure VC-WIN32
nmake
:: 64 ビット
perl Configure VC-WIN64A
nmake
ビルド完了後、libcrypto.lib・libssl.lib・libcrypto-3-x64.dll・libssl-3-x64.dll が生成されます。
4. 実行時 DLL の配置
生成された DLL を PATH に含むフォルダへコピーするか、環境変数に追加しておくと実行時に見つけやすくなります。
5. 動作確認用サンプル
C++ コード (main.cpp)
#include <iostream>
#include <openssl/evp.h>
int main() {
OpenSSL_add_all_algorithms();
const EVP_MD* digest = EVP_sha256();
if (digest) {
std::cout << "OpenSSL 3.5.1 動作確認 OK\n";
std::cout << "使用アルゴリズム: " << EVP_MD_name(digest) << '\n';
} else {
std::cerr << "初期化失敗\n";
return 1;
}
EVP_cleanup();
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.20)
project(openssl_check)
set(OPENSSL_ROOT_DIR "C:/openssl-3.5.1")
find_package(OpenSSL REQUIRED)
add_executable(openssl_check main.cpp)
target_link_libraries(openssl_check OpenSSL::SSL OpenSSL::Crypto)
上記をビルドして実行し、OpenSSL 3.5.1 動作確認 OK が出力されれば環境構築完了です。