add_library¶

Normal Libraries¶

add_library(<name> )

コマンド呼び出しでリストされたソースファイルから構築する <name> というライブラリのターゲットを追加する。 (<name>は論理ターゲット名に相当し、プロジェクト内でグローバルに一意でなければならない。

STATIC, SHARED, MODULE は作成するライブラリの種類を指定するために使われることがあります。 STATIC ライブラリは、他のターゲットをリンクする際に使用するオブジェクトファイルのアーカイブです。 SHARED ライブラリは動的にリンクされ、ランタイムにロードされる。 MODULE ライブラリはプラグインで、他のターゲットにリンクされませんが、dlopen のような機能を使って実行時に動的にロードされることがあります。 明示的に型が与えられない場合、変数 BUILD_SHARED_LIBS の現在値が ON であるかどうかにより、型は STATIC または SHARED となる。 3572> および MODULE ライブラリでは、POSITION_INDEPENDENT_CODE targetproperty は自動的に ON に設定されます。SHARED または STATIC ライブラリは、FRAMEWORKtarget プロパティを使用して macOS フレームワークを作成することが可能です。 これは、CMake が Windows 上で SHARED ライブラリーが常に関連付けられたインポートライブラリーを持つことを期待するからです。

デフォルトでは、ライブラリファイルは、コマンドが起動されたソースツリーのディレクトリに対応するビルドツリーのディレクトリに作成されます。 この場所を変更するには、ARCHIVE_OUTPUT_DIRECTORYLIBRARY_OUTPUT_DIRECTORY、およびRUNTIME_OUTPUT_DIRECTORY ターゲット・プロパティのドキュメントを参照してください。

もし EXCLUDE_FROM_ALL が指定された場合、対応するプロパティは作成されたターゲットに設定されます。

add_library へのソース引数は、構文 $<...> の “generator expression” を使用することができます。 使用可能な式は cmake-generator-expressions(7) のマニュアルを参照してください。 ビルドシステム・プロパティの定義の詳細については、cmake-buildsystem(7)マニュアルを参照してください。

コメントを残す

メールアドレスが公開されることはありません。