WindowsでOpenSSL 3.5.1をnmakeでビルドし開発環境を整える手順

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.liblibssl.liblibcrypto-3-x64.dlllibssl-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 が出力されれば環境構築完了です。

タグ: OpenSSL MSVC nmake CMake Windows SDK

5月14日 22:48 投稿