Closed2
cmake簡単ハンズオン

cmake簡単ハンズオン
cmakeでc++をお試しする簡単ハンズオンです
Step1: ファイルを用意
フォルダを作り、そこに2つのファイルを用意します
フォルダ構成
root/
├── CMakeLists.txt
└── main.cpp
CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 3.14) # cmakeのバージョン
project("HelloCMake") # プロジェクト名
add_executable(Main main.cpp) # 実行ファイルを指定
main.cpp
#include <stdio.h>
int main(){
printf("Hello, CMake!!\n");
return 1;
}
Step2: ビルド先ディレクトリの作成
Generated Build Systemと、実行ファイルの生成先を用意します
command
$ mkdir build
$ cd build
Step3: cmakeコマンド
Generated Build Systemを生成します
command
$ cmake ../
Step4: build
実行ファイルを生成します
command
$ cmake --build ./
Step5: run
実行します
command
$ ./Main

階層構造になったプロジェクト
プロジェクト内が階層構造にしたい場合は次の様に管理します
Step1: ファイルを用意
新たにmoduleディレクトリを作り次の様にファイルを用意します
フォルダ構成
root/
├── CMakeLists.txt
├── main.cpp
└── module/
├── CMakeLists.txt
└── func1.cpp
└── func1.cpp
Step2: moduleフォルダ
moduleフォルダ内部のファイルは次の様に記述します
modules/CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 3.14) # cmakeのバージョン
add_library(Module STATIC
func1.cpp
func2.cpp
)
module/func1.cpp
#include <stdio.h>
int calcDouble(int num){
return num * 2;
}
module/func2.cpp
#include <stdio.h>
int calcTripple(int num){
return num * 3;
}
Step3: ルートディレクトリ
ルートディレクトリのファイルは次の様に記述します
CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 3.14) # cmakeのバージョン
project("HelloCMake") # プロジェクト名
add_subdirectory(module) # サブディレクトリ指定
add_executable(Main main.cpp) # 実行ファイルを指定
target_link_libraries(Main Module) # Mainに対してModuleをリンク
main.cpp
#include <stdio.h>
#include "module/func1.cpp"
#include "module/func2.cpp"
int main(){
printf("Hello, CMake!!\n");
const int num1 = calcDouble(4);
printf("Double: %d\n", num1);
const int num2 = calcTripple(4);
printf("Tripple: %d\n", num2);
return 1;
}
以降の手順は前回の記事と同様です。
このスクラップは3日前にクローズされました