qt_add_library
ライブラリを作成し、確定します。
このコマンドはQt6
パッケージのCore
コンポーネントで定義されています:
find_package(Qt6 REQUIRED COMPONENTS Core)
このコマンドは Qt 6.2 で導入されました。
概要
qt_add_library(target [STATIC | SHARED | MODULE | INTERFACE | OBJECT] [MANUAL_FINALIZATION] sources... )
バージョンレスコマンドが無効になっている場合は、代わりにqt6_add_library()
を使ってください。このコマンドと同じ引数セットをサポートしている。
説明
qt_add_library()
は、CMake の組み込み コマンドのラッパーです。以下のタスクを実行します:add_library()
- 適切なライブラリタイプのCMakeターゲットを作成する。
- CMakeターゲットのファイナライズを処理します。
ターゲットの作成
作成されるライブラリのタイプは、add_library()
の場合と同様に、STATIC
、SHARED
、MODULE
、INTERFACE
、OBJECT
のいずれかのキーワードで明示的に指定できます。これらのキーワードが指定されていない場合、作成されるライブラリのタイプは Qt がどのようにビルドされたかに依存します。Qtが静的にビルドされた場合、スタティック・ライブラリが作成されます。そうでない場合は、共有ライブラリが作成されます。これは、CMakeのadd_library()
コマンドの動作方法とは異なることに注意してください。BUILD_SHARED_LIBS
変数は、作成されるライブラリのタイプを制御します。6.7 以降、qt_add_library()
コマンドがライブラリのタイプを決定する際にBUILD_SHARED_LIBS
を考慮するのは、この変数が明示的に設定され、QTP0003がNEW
に設定されている場合のみです。
提供されたsources
はすべて、add_library()
の内部呼び出しに渡される。
最終化
ターゲットが作成された後、更なる処理や最終化のステップが必要になるかもしれません。最終化処理はqt_finalize_target()コマンドによって実装されます。
最終化は、この呼び出しの一部として発生するか、またはこのコマンドが返された後に延期することができます(ただし、同じディレクトリスコープ内にある必要があります)。CMake 3.19以降を使用している場合、最終化は自動的に現在のディレクトリスコープの最後まで延期されます。これにより、最終化される前に、呼び出し元は作成されたターゲットのプロパティを変更することができます。CMake 3.19 より前のバージョンを使用する場合、自動的な遅延はサポートされません。その場合、最終化はこのコマンドが戻る直前に実行されます。
CMake のバージョンに関係なく、MANUAL_FINALIZATION
キーワードを指定することで、後で自分で明示的にqt_finalize_target() を呼び出すことを示すことができます。一般的に、MANUAL_FINALIZATION
は、プロジェクトが CMake 3.18 以前をサポートする必要がない限り、必要ありません。
qt_finalize_target(),qt_add_executable(),QTP0003も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.