LoginSignup
2
0

More than 3 years have passed since last update.

VC++(VS2017)でopensslをstaticで使用するメモ

Posted at

基本的はnugetで導入可能だが別途dllが必要なので、レアではあるがstaticライブラリでアプリを作る場合のメモ。

取得

  1. バイナリをダウンロードする。 https://slproweb.com/products/Win32OpenSSL.html よりWin32とWin64を取得する。
  2. インストール先はそれぞれ「C:\OpenSSL-Win32」と「C:\OpenSSL-Win64」とする

VSの設定

  1. プロジェクトのプロパティより「リンカー」「全般」を選択。「追加のライブラリディレクトリ」の欄に以下のパスを設定。「C:\OpenSSL-Win32\lib\VC\static」か「C:\OpenSSL-Win64\lib\VC\static」

  2. 「C/C++」「全般」を選択し「追加のインクルードディレクトリ」の欄に以下のパスを設定。「C:\OpenSSL-Win32\include」か「C:\OpenSSL-Win64\include」

  3. 「リンカー」「入力」より以下のライブ来rファイルを設定する
    「Crypt32.lib」全プラットフォーム、各構成共通

32bit
Release マルチスレッドDLL:「libcrypto32MD.lib」「libssl32MD.lib」
Release マルチスレッド:「libcrypto32MT.lib」「libssl32MT.lib」

64bit
Release マルチスレッドDLL:「libcrypto64MD.lib」「libssl64MD.lib」
Release マルチスレッド:「libcrypto64MT.lib」「libssl64MT.lib」

Debug版は各ファイル名の末尾にdが付くファイル「***d.lib」

古いopenssl(1.0系)から1.1系にアップグレードすると
EVP_CIPHER_CTXの初期化方法が変わっていることによる
ビルドエラーが発生するので対処する必要がある。

EVP_CIPHER_CTX ctx

EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();

となり、引数で使用している個所もポインターにする。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0