CMakeを用いたC++のHello Worldプログラムの実行

2023-12-09プログラミング

はじめに

まずは能書き垂れる前に、サンプルソースをさっさと動かします。

環境構築

Ubuntu18.04LTS

# install cmake package
sudo apt-get install cmake

準備するファイル

~/sample/
    |-CMakeLists.txt
    |-main.cpp
    |-hello.hpp
    |-hello.cpp
# mkdir project dir under ~/ 
mkdir sample
cd sample
touch CMakeLists.txt main.cpp hello.hpp hello.cpp
# CMake Version
cmake_minimum_required(VERSION 2.8)
# Project name & Language
project(helloworld CXX)
# source file & generated file
add_executable(a.out main.cpp hello.cpp)
#include "hello.hpp"

int main() {
    hello();
}
#ifndef HELLO_H
#define HELLO_H

void hello();

#endif
#include <iostream>
#include "hello.hpp"

void hello() {
    std::cout << "Hello!" << std::endl;
}

コンパイル

コンパイルします。

mkdir build
cd build
cmake ..
make

実行結果です。

$:~/sample/build$ make
Scanning dependencies of target hello
[ 33%] Building CXX object CMakeFiles/hello.dir/main.cpp.o
[ 66%] Linking CXX executable hello
[100%] Built target hello

実行後、こんなにたくさんファイルができました。

~$ tree sample/
sample/
├── build
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   │   ├── 3.10.2
│   │   │   ├── CMakeCXXCompiler.cmake
│   │   │   ├── CMakeDetermineCompilerABI_CXX.bin
│   │   │   ├── CMakeSystem.cmake
│   │   │   └── CompilerIdCXX
│   │   │       ├── a.out
│   │   │       ├── CMakeCXXCompilerId.cpp
│   │   │       └── tmp
│   │   ├── cmake.check_cache
│   │   ├── CMakeDirectoryInformation.cmake
│   │   ├── CMakeOutput.log
│   │   ├── CMakeTmp
│   │   ├── feature_tests.bin
│   │   ├── feature_tests.cxx
│   │   ├── hello.dir
│   │   │   ├── build.make
│   │   │   ├── cmake_clean.cmake
│   │   │   ├── CXX.includecache
│   │   │   ├── DependInfo.cmake
│   │   │   ├── depend.internal
│   │   │   ├── depend.make
│   │   │   ├── flags.make
│   │   │   ├── hello.cpp.o
│   │   │   ├── link.txt
│   │   │   ├── main.cpp.o
│   │   │   └── progress.make
│   │   ├── Makefile2
│   │   ├── Makefile.cmake
│   │   ├── progress.marks
│   │   └── TargetDirectories.txt
│   ├── cmake_install.cmake
│   ├── hello
│   └── Makefile
├── CMakeLists.txt
├── hello.cpp
├── hello.hpp
└── main.cpp


実行

~/sample/build$ ./hello
Hello World !

2023-12-09プログラミング

Posted by tech-biz-creator