CMake のユニバーサル テンプレート

コードをコンパイルする

  1. プロジェクトのルート ディレクトリに CMakeLists.txt という名前のファイルを作成し、必要に応じて各サブディレクトリに CMakeLists.txt ファイルを作成します。
  2. cmake に必要な最小バージョンを指定します。使用する CMake のバージョンがこのバージョンより低い場合、致命的なエラーが発行されます。
cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
  1. プロジェクト名とサポートされているプログラミング言語を宣言します (必須)
project(cplusplus_test LANGUAGES CXX)
  1. 言語標準の設定 (オプション)
set(CMAKE_CXX_STANDARD 20)  # 设置这一项可以替代set(CMAKE_CXX_FLAGS "-std=c++20")
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)
  1. コンパイル タイプを設定します (オプション)。デフォルトは空であるか、他のものである可能性があります。
set(CMAKE_BUILD_TYPE "Debug")
  1. set を使用してカスタム変数または cmake 変数を設定します (オプション)
  2. CMake に 1 つ以上の新しいターゲット (実行可能ファイルまたは動的/静的ライブラリ) を作成するように指示します。
add_library()     # 构建库
add_executable()  # 构建可执行文件
  1. オブジェクト ファイルにインクルードするヘッダー ファイル ディレクトリがある場合は、ヘッダー ファイルのディレクトリをオブジェクト ファイルに追加します。
target_include_directories(<target> <PRIVATE|PUBLIC|INTERFACE> <header_dir>)
  1. ターゲット ファイルにさらにソース コード ファイル (.cpp など) がある場合は、それをターゲット ファイルに追加する必要があります
target_sources(<target> <PRIVATE|PUBLIC|INTERFACE> <src_dir>)
  1. ターゲット ファイルに依存関係がある場合は、依存ライブラリをターゲット ファイルにリンクします。ライブラリ ファイルでは、接頭辞 lib と接尾辞 .so または .a を省略できます。
target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> <lib_name>)

インストールコード

install()

テストコード

構築する

  1. ビルド ディレクトリを作成し、ビルド ディレクトリ内に多数のファイルを生成します。
mkdir -p build
cd build ; cmake ..
# 开始编译
cmake --build .  # 或者可以直接 make

おすすめ

転載: blog.csdn.net/u010378559/article/details/130848070