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
ライブラリは、FRAMEWORK
target プロパティを使用して macOS フレームワークを作成することが可能です。 これは、CMake が Windows 上で SHARED
ライブラリーが常に関連付けられたインポートライブラリーを持つことを期待するからです。
デフォルトでは、ライブラリファイルは、コマンドが起動されたソースツリーのディレクトリに対応するビルドツリーのディレクトリに作成されます。 この場所を変更するには、ARCHIVE_OUTPUT_DIRECTORY
、LIBRARY_OUTPUT_DIRECTORY
、およびRUNTIME_OUTPUT_DIRECTORY
ターゲット・プロパティのドキュメントを参照してください。
もし EXCLUDE_FROM_ALL
が指定された場合、対応するプロパティは作成されたターゲットに設定されます。
add_library
へのソース引数は、構文 $<...>
の “generator expression” を使用することができます。 使用可能な式は cmake-generator-expressions(7)
のマニュアルを参照してください。 ビルドシステム・プロパティの定義の詳細については、cmake-buildsystem(7)
マニュアルを参照してください。