Skip to content
KowerKoint edited this page Jun 18, 2021 · 4 revisions

Welcome to the GUIApp_TeamDev2021 wiki!

I/Oのドキュメント

https://oucc.github.io/GUIApp_TeamDev2021/html/
私(KowerKoint)がPushしたら勝手に反映されるはずです。Crypto++で作ってたのにOpenSSLに変えたとかSQLite使って書いてるのにSiv3DのほうのDB使いそうとか内部的な変更点はあるかもしれませんが表面上の使い勝手は変更ないようにしたいです。

Visual Studio2019向けのOpenSSL導入指南(開発者向け)

概要

暗号化ライブラリに使用しているOpenSSLの導入手順を書いておくのでWindowsのVisual Studio2019で開発している人はこれを見て導入していただきたいです。基本的には (https://kimamacode.com/cpp-openssl-install/) に従います。なお、必ずx64用のビルドとリンクが必要ですのでご注意お願いします。
Mac(M1)の場合どうすればいいかは後で確認しときます。ごめんね。

Strawberry Perl

https://strawberryperl.com/ にアクセスしてStrawberry Perlをインストールします。64bit版のmsiをダウンロードしてそのまま指示に従えばいいと思います。ActiveState Perlを進めてるサイトもありましたが、自分はつまりました(理由は https://qiita.com/QGv/items/dbc3e8b70d1f9f6a2f6f に書いてそうですがとにかくStrawberryなら問題ありません。

OpenSSLのダウンロードと解凍

https://www.openssl.org/source/ から openssl-1.1.1k.tar.gz をダウンロードしてください。たぶん上から2番めです。DLできたら解凍します。tar.gzを解凍できる環境がない場合は Lhaplus とか入れて使えばいいと思います。今回は C:\openssl というフォルダを作ってその中に解凍しました(つまり C:\openssl\openssl-1.1.1k というふうになっています)。上に書いてるサイトと若干違いますがどうでもいいと思います。

OpenSSLのビルド

スタートメニューから検索とかして x64 Native Tools Command Prompt for VS 2019 を開きます。(上記のサイトではDeveloper Command Prompt for VS 2019を使えって言ってますがこれでは正しくビルドできないので必ずx64の方を使ってください。ビルドに使うコンパイラのターゲットが違うっぽいです。) C:\openssl\openssl-1.1.1k とかで先程解凍したOpenSSLのフォルダに移動して、 perl Configure VC-WIN64A --prefix=%CD%\x64 --openssldir=%CD%\openssl no-asm no-shared を実行します。ちょっと時間かかるかもです。終わったら nmake install でビルドします。10分くらい文字が流れまくります。

Visual Studioのプロジェクト設定

英語版ではどんな表記になってるかわからないです。英語版使ってる人がいたらごめんなさい…
Visual Studioで該当プロジェクトを開いて、上部のプロジェクト→プロパティからプロパティに入ります。プロパティページのウィンドウが出てきます。
構成プロパティ→C/C++→全般の「追加のインクルードディレクトリ」の「編集」を押して C:\openssl\openssl-1.1.1k\include を追加します。枠内右側の三点リーダ みたいなボタンを押したらGUIから選べます。OpenSSLの場所によってちょっと変わります。
構成プロパティ→リンカー→全般の「追加のライブラリディレクトリ」の「編集」を押して C:\openssl\openssl-1.1.1k\x64\lib と入れます。同様にGUIで選択もできるしOpenSSLの場所に依ります。` 構成プロパティ→リンカー→入力の「追加の依存ファイル」の「編集」を押して

libssl.lib
libcrypto.lib

と入れます。

終わり

以上です。x64 Native Tools Command Prompt for VS 2019 を使うこと、以外は最初に示したサイトに従えばいいです。わからないことがあったら私(KowerKoint)に聞いてください。