C++ Macで最低限のCMAKE

photo of person typing on computer keyboard

C++には,c++コマンドでコンパイルする以外に,コンパイル方法について事前に定義したCMakeLists.txtに基づいてコンパイルを行うcmakeによるコンパイル方法があります.

目次

C++のインストール

C++が未インストールの場合,最初にC++をインストールします.C++はbrew経由でインストールします.

$ brew install gcc

C++のコンパイルと実行

<出力ファイルを指定せずコンパイル>
c++ main.cpp
./a.out

<出力ファイルを指定してコンパイル>
c++ -o main main.cpp
./main

構成

hello-world
├── CMakeLists.txt
└── main.cpp

ファイルの中身

cmake_minimum_required(VERSION 3.24)
project(hello_world)

set(CMAKE_CXX_STANDARD 17)

add_executable(hello_world main.cpp)
#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

CMakeとMakeの実行

$ cmake .
$ make

cmake .によって生成されるファイルとフォルダ

# cmake . によって生成
CMakeCache.txt
CMakeFiles
Makefile
cmake_install.cmake

# make によって生成
hello_world

中間ファイルの扱い

中間ファイルは削除する

再度 cmake . makeする際に中間ファイルが悪さをしてエラーが出る場合がある。そのためcmake .実行前にこれらのファイルを削除しておくのが望ましい。

中間ファイルをbuild配下に作成する方法

$ mkdir build

以下のようなディレクトリ構造になります。

.
├── CMakeLists.txt
├── main.cpp
└── build
$ cd build
$ cmake ../
$ make

make実行後のディレクトリ構造は以下のようになります。

.
├── CMakeLists.txt
├── build
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   ├── Makefile
│   ├── cmake_install.cmake
│   └── hello_world
└── main.cpp
よかったらシェアしてね!
目次