cmake
ビルドターゲット
サーチ…
構文
- add_executable(target_name [EXCLUDE_FROM_ALL] source1 [ソース2 ...])
- add_library(lib_name [静的|共有|モジュール] [EXCLUDE_FROM_ALL] source1 [ソース2 ...])
実行可能ファイル
実行可能ファイルを生成するビルドターゲットを作成するには、 add_executable
コマンドを使用する必要があります。
add_executable(my_exe
main.cpp
utilities.cpp)
これにより、ビルドターゲットが作成されます。たとえば、GNU makeに対してmake my_exe
を作成し、設定されたコンパイラを適切に起動して、2つのソースファイルmain.cpp
とutilities.cpp
から実行可能ファイルmy_exe
を生成しutilities.cpp
。
デフォルトでは、すべての実行可能なターゲットが組み込みのall
ターゲットに追加されall
( all
GNU make、 BUILD_ALL
はMSVC)。
実行可能ファイルをデフォルトのall
ターゲットでビルドされないようにするには、ターゲット名の直後にオプションのパラメータEXCLUDE_FROM_ALL
追加します。
add_executable(my_optional_exe EXCLUDE_FROM_ALL main.cpp)
図書館
ライブラリを作成するビルドターゲットを作成するには、 add_library
コマンドを使用しadd_library
。
add_library(my_lib lib.cpp)
CMake変数BUILD_SHARED_LIBS
は、たとえばcmake .. -DBUILD_SHARED_LIBS=ON
を使用して、スタティック( OFF
)ライブラリまたは共有( ON
)ライブラリをビルドするときはいつでも制御しcmake .. -DBUILD_SHARED_LIBS=ON
。ただし、ターゲット名の後にSTATIC
またはSHARED
追加することによって、共有ライブラリーまたはスタティックライブラリーを作成するように明示的に設定することができます。
add_library(my_shared_lib SHARED lib.cpp) # Builds an shared library
add_library(my_static_lib STATIC lib.cpp) # Builds an static library
実際の出力ファイルはシステムによって異なります。たとえば、Unixシステム上の共有ライブラリは通常libmy_shared_library.so
と呼ばれますが、Windowsではmy_shared_library.dll
とmy_shared_library.lib
とmy_shared_library.lib
ます。
add_executable
と同様に、ソースファイルのリストの前にEXCLUDE_FROM_ALL
追加して、 all
ターゲットから除外します。
add_library(my_lib EXCLUDE_FROM_ALL lib.cpp)
実行時に読み込まれるように設計されたライブラリ(例えば、プラグインやdlopen
ようなアプリケーションを使用するアプリケーション)は、 SHARED
/ STATIC
代わりにMODULE
を使用する必要があります。
add_library(my_module_lib MODULE lib.cpp)
たとえば、Windowsでは、シンボルは.dll
直接エクスポートされるため、インポート( .lib
)ファイルはありません。