visual studio 2022で OPENSSL を static build する
ビルドに必要なもの
- Visual Studio 2022(正確にはVS2022本体は使いませんbuild toolsのnmakeを使うだけです)
- Strawberry Perl
- OpenSSL
Strawberry Perl install
https://strawberryperl.com/releases.html
download https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.zip
- ポータブル版をdownloadしてc:\などに配置
- システムの詳細設定>環境変数>Path
- 配置したperl.exeまでのPathを追加する
- 以下のPathを追加する -- C:\strawberry-perl-5.32.1.1-64bit-portable\perl\bin
Native Tools Command Prompt を起動し直してperlの確認
perl -v This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread
openssl install
openssl download
- https://www.openssl.org/source/
- https://www.openssl.org/source/old/1.1.1/openssl-1.1.1l.tar.gz
mkdir C:\Build-OpenSSL-VC32 cd C:\Build-OpenSSL-VC32 wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1l.tar.gz tar zxvf openssl-1.1.1l.tar.gz cd openssl-1.1.1l
x86版OPENSSL STATIC BUILD
Native Tools Command Prompt は2種類あるので間違わないように
(x86) Native Tools Command Prompt for VS2022
perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC32\x86 --openssldir=C:\Build-OpenSSL-VC32\x86\ssl no-asm no-shared nmake nmake install nmake clean
x86 directoryにinstallされる
x64版OPENSSL STATIC BUILD
(x64) Native Tools Command Prompt for VS2022
perl Configure VC-WIN64A --prefix=C:\Build-OpenSSL-VC32\x64 --openssldir=C:\Build-OpenSSL-VC32\x64\ssl no-asm no-shared nmake nmake install nmake clean
x64 directoryにinstallされる
ここまででOPENSSLライブラリのビルドとインストールは終わり
openssl build optionについて
- VC-WIN32 ... x86 用オプション
- VC-WIN64A ... x64 用オプション
オプション 説明 no-asm C言語 ルーティンに従う no-shared スタティックライブラリのみ生成する --prefix=XXX インストール先の指定(ビルド物やhファイル等) --openssldir=XXX インストール先の指定
ここから先は今回ビルドしたOpenSSLスタティックリンクライブラリを利用するプロジェクトで必要な設定
OpenSSLの「NOTES.WIN」より、libcrypto.lib、libssl.libをスタティックリンクする際、 以下のスタティックライブラリも必要です。(x86プラットフォーム向けのプロジェクトの場合)
ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib C:\Build-OpenSSL-VC32\x86\lib\libcrypto.lib C:\Build-OpenSSL-VC32\x86\lib\libssl.lib
VS2022ではプロジェクトのプロパティ>リンカー>入力>追加の依存ファイルに上記lib群を追加する
※プラットフォームによりincludeファイルやlibファイルが分かれている場合、それぞれx86やx64に合わせて指定する必要がある。
ライブラリディレクトリの追加
プロジェクトのプロパティ>リンカー>全般>追加のライブラリディレクトリに - OPENSSLのlibディレクトリPATHを追加する - C:\Build-OpenSSL-VC32\x86\lib
インクルードディレクトリの追加
プロジェクトのプロパティ>C/C++>全般>追加のインクルードディレクトリに - OPENSSLのincludeディレクトリPATHを追加する - C:\Build-OpenSSL-VC32\x86\include
参考
created: