OpenSSL 1.0.1e ライブラリを使用する Windows 用の C++ アプリケーションに取り組んでいます。私はVisual Studio 2008を使用しています。
移植性の理由から、私のアプリケーションはランタイム ライブラリ (/MT
および/MTd
オプション) に対して静的にリンクされています。また、アプリケーションにランタイム ライブラリを同梱していません。
OpenSSL FAQによると、ライブラリはデフォルトでマルチスレッド DLL ランタイム ( /MDd
) に対してリンクされていますが、これは明らかに私のシナリオと互換性がありません。applink.c
したがって、プログラムを機能させるために、プロジェクトに追加しました。私の開発マシンとほとんどのテスト コンピューターでは、プログラムは正常に動作します。
残念ながら、アプリが起動しないコンピューターを見つけました。Windows に次のエラーが表示されます。
The application failed to initialize properly (0xc0150002). Click on OK to
terminate the application.
libeay32.dll
Dependency Walker で開いたところ、MSVCR90.dll
見つからないことがわかりました。したがって、 のトリックは実際にapplink.c
は機能しません。
/MT
または/MTd
オプションを使用して OpenSSL を構築するにはどうすればよいですか?