私はQtを使い始めたばかりですが、Googleを使ったことがあり、詳細な答えを見つけることができません。
QmakeベースのQtプロジェクトでOpenSSLを使用する必要があります。 includeステートメントを実行してコードでその関数を使用できるように、ダウンロード/インストール/リンクするにはどうすればよいですか?
Windowsを想定して、そのインストールを Win32 OpenSSLインストールプロジェクトページ からダウンロードできます。 64ビットのWindows開発用または32ビット用のいずれかを選択できます。セットアップを実行するだけで、すべてが簡単に実行されます。デフォルトのインストールディレクトリは次のとおりです:C:\ OpenSSL-Win32
Qt creatorで、ライブラリをプロジェクトにリンクする場合は、この行を.proファイル(プロジェクトファイル):
LIBS += -L/path/to -llibname
それで、これがこのライブラリーのために私たちがすることです(例えばubsec.libをリンクするために)
LIBS += -LC:/OpenSSL-Win32/lib -lubsec
-Lと-lに注意してください 参照この質問 。ライブラリ名の最後に.libを指定する必要すらありません。
.hファイルを含めるには、次の行を.proファイルに追加します。
INCLUDEPATH += C:/OpenSSL-Win32/include
その後、次のようなファイルを含めることができます。
#include <openssl/aes.h>
Georgeから Qt CreatorでOpenSSLのAESファイルを使用できない :
これがLinux上にある場合は、.proファイルに以下を追加します。
PKGCONFIG += openssl
必要なすべてのヘッダーパス、コンパイルリンカーオプション、およびライブラリを処理します。
また、openssl-develパッケージがシステムにインストールされていることを確認してください。
私はQt5.5でWin 7(32)を使っていましたが、これらの答えのどれもうまくいきませんでした。
そこで、最終的に機能したソリューションを共有したいと思います。
1。 OpenSSLがC:\ OpenSSL-Win32にインストールされています
2。 c:\ OpenSSL-Win32\MinGWには、2つのライブラリファイルがあります。libeay32.a & ssleay32.a
3。私はそれらのそれぞれのコピーを拡張子の名前を変更して作成しました:libeay32.a -> libeay32.lib & ssleay32.a -> ssleay32.lib
4。この方法で.proファイルのライブラリをリンクしました:LIBS += -LC:/OpenSSL-Win32/lib/MinGW -llibeay32
LIBS += -LC:/OpenSSL-Win32/lib/MinGW -lssleay32
INCLUDEPATH += C:/OpenSSL-Win32/include
5。 C:\ OpenSSL-Win32から3つの.dllファイルをコピーしました。
(libeay32.dll、libssl32.dll、ssleay32.dll)
ビルド/デバッグフォルダー:
(build-XXXXX-Desktop_Qt_5_5_1_MSVC2012_32bit-Debug/debug)
これがお役に立てば幸いです。
win7を使用していて、qtのバージョンがmingwであり、opensslを http://slproweb.com/products/Win32OpenSSL.html からインストールする場合は、ライブラリがOpenSSL-Win32にあることを確認してください/ lib/MinGW、およびlibeay32.aとssleay32.aに「lib」プレを追加します。
プロジェクトのビルドシステムとしてcmake
を使用する場合は、次のように_FindOpenSSL.cmake
_を含めることができます。
_#set(OPENSSL_USE_STATIC_LIBS TRUE) # if you want to use static libssl.a and libcrypto.a
include(FindOpenSSL)
#add_executable(${PROJECT_NAME} ...) or add_library(${PROJECT_NAME} ...)
target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_DL_LIBS} OpenSSL::SSL OpenSSL::Crypto)
_
_${CMAKE_DL_LIBS}
_は、「dlopenシンボルが見つかりません...」などのリンク時エラーを回避するためにLinuxシステムで必要です。 Windowsでは空になりました。
openssl
インストールディレクトリが標準ではない場合、_OPENSSL_ROOT_DIR
_をcmake
に提供する必要があります。 include
の前にset(OPENSSL_ROOT_DIR "C:/msys64/mingw32")
を追加するか、cmake
実行可能ファイルに_-DOPENSSL_ROOT_DIR:PATH=C:/msys64/mingw32
_を指定します(「プロジェクト」->「ビルド設定」->「CMake」タブ)。