01. 開発版
以下のソース コードおよびソフトウェアはすべて、次のバージョンに基づいています。
1、QT: Qt 5.12.2 (MSVC 2017、32 ビット) ベース
2、OpenCV: OpenCV – 4.5.1
ヒント: OpenCV のバージョンは私のバージョンと同じである必要はありませんが、一部のインターフェイスや使用方法がバージョン間で変更されている可能性があります。そのため、私が書いた OpenCV 記事の一部が後で使用する際に互換性がなくなる可能性があります。知る!
02. QT が DLL プロジェクトを作成します
- QtQcreator ソフトウェアを開き、新しいプロジェクトの作成を選択します 新しいプロジェクト
2. [ライブラリ] -> [C++ ライブラリ] -> [選択...] を選択します。
3.共有ライブラリを選択 -> ライブラリ プロジェクトの名前を追加 -> 次のステップに進みます。
4. [すべてのキットを選択] -> [デスクトップ Qt 5.12.3 MinGW 64 ビット] をチェックします (ここではコンパイラは独自のものに基づくことができます)
5.モジュール項目を選択 -> 次のステップに進みます
6.次に、プロジェクト名を確認し、コード管理を選択して、DLL ダイナミック ライブラリの作成を完了します。
03. dllプロジェクトの設定手順
上記のようにプロジェクトを作成した後の最終スクリーンショットは次のとおりです。
- ステップ 1: .pro ファイルを構成する
ヒント: OpenCV の構成と 2 つのディレクトリの由来については、他のブロガーの QT 構成 OpenCV ブログを参照してください。非常に基本的な内容なので、ここでは紹介しません。
- ステップ 2: いくつかのインターフェースをテスト関数として追加します。
- _global.h ファイルの概要*
Q_DECL_IMPORT マクロは、共有ライブラリによってエクスポートされたシンボルをマークします。この opencvcameralib_global.h ファイルを使用したくない場合は、4 ~ 10 行目を OpenCVCameraLib.h にコピーするだけで済みます。
以下に示すように:
このファイルを使用したくない場合は、赤枠の内容をプロジェクト名.hのヘッダー ファイルにコピーするだけで削除できます。
04. DLLダイナミックライブラリテスト
-
新しい Qt ウィジェット アプリケーション プロジェクトを作成する
-
プロジェクト名を変更する
-
プロジェクト構成バージョンの選択
-
クラス情報を変更します。デフォルトは MainWindow です。
-
次のようにバージョン管理を選択し、git を使用して
適切なインターフェイスと .pro ファイルを作成します。
ヒント: OpenCV の構成も、ここの .pro で構成されています。以前にこのプロジェクトをグラフィックス テストに使用したため、このプロジェクトのいくつかのインターフェイスを予約しました。理論的には、ライブラリの形式で呼び出されます。ここで必要なのは、 include LIBS +=
C :\Users\10125\Documents\OpenCV_CameraDemo\OpenCVCameraLib.dll
ここでのパスはライブラリ生成パス、つまり、Relese ディレクトリ内の dll ライブラリ パスです。
注: dll ライブラリと .h ファイルは、テスト ファイル (実際にプロジェクトを呼び出す) の exe ファイルと同じレベルに配置する必要があります。そうしないと、コンパイル エラーが報告され、プログラムがクラッシュします。
エラーは次のとおりです。
11:58:40: Starting C:\Users\10125\Documents\build-OpenCV_CameraDemo-Desktop_Qt_5_12_3_MinGW_64_bit-Release\release\OpenCV_CameraDemo.exe ...
11:58:43: 程序异常结束。
11:58:43: The process was ended forcefully.
11:58:43: C:/Users/10125/Documents/build-OpenCV_CameraDemo-Desktop_Qt_5_12_3_MinGW_64_bit-Release/release/OpenCV_CameraDemo.exe crashed.
次に、インターフェイス呼び出しが正常であることを確認します。