サーチ…


構文

  • 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.cpputilities.cppから実行可能ファイルmy_exeを生成しutilities.cpp

デフォルトでは、すべての実行可能なターゲットが組み込みのallターゲットに追加されallall 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.dllmy_shared_library.libmy_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 )ファイルはありません。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow