CMake를 이용한 C 언어 프로그래밍 #1 : Hello world

반응형

CMake를 이용한 C 언어 프로그래밍 #1 : Hello world

 

본 글에서는 CMake의 가장 기본적인 문법과 사용방법을 설명하기 위해 Hello world 예제를 만들어 본다.

 

본 글에서 사용된 환경은 다음과 같다.

  • CMake 실행 및 빌드 환경 : 우분투 리눅스(도커 컨테이너)

 

리눅스 상에 CMake를 설치하는 방법은 다음 글에서 확인할 수 있다.

 

다음과 같이 hello.c 파일을 작성한다. "Hello world"라는 문자열을 출력하는 매우 간단한 프로그램이다.

#include <stdio.h>

int main(void)
{
  printf("Hello world\n");
  return 0;
}

 

hello.c 파일과 동일한 디렉터리 내에 CMakeLists.txt 파일을 다음과 같이 작성한다.

  • add_executable 명령은 실행파일을 빌드하는 명령이다. 
  • hello 는 빌드 결과로 생성되는 실행파일명을 나타내며, hello.c 는 빌드할 파일을 의미한다.
add_executable(hello hello.c)

 

 

CMakeLists.txt 파일이 위치한 디렉토리에서 "cmake CMakeLists.txt" 명령을 수행한다.

root@e4f038adc5a5:/workspace/cmake/hello# cmake CMakeLists.txt
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /workspace/cmake/hello

 

cmake 수행 결과로 CMakeCache.txt, CMakeFiles/, Makefile cmake_install.cmake 가 생성된다.

root@e4f038adc5a5:/workspace/cmake/hello# ls
CMakeCache.txt  CMakeFiles  CMakeLists.txt  Makefile  cmake_install.cmake  hello.c

 

Makefile 이 생성되었으므로, "make" 명령으로 빌드한다. 빌드 결과로 hello 실행파일이 생성된 것을 확인할 수 있다.

root@e4f038adc5a5:/workspace/cmake/hello# make
Scanning dependencies of target hello
[ 50%] Building C object CMakeFiles/hello.dir/hello.c.o
[100%] Linking C executable hello
[100%] Built target hello
root@e4f038adc5a5:/workspace/cmake/hello# ls
CMakeCache.txt  CMakeFiles  CMakeLists.txt  Makefile  cmake_install.cmake  hello  hello.c

 

생성된 hello 파일을 실행해 본다.

root@e4f038adc5a5:/workspace/cmake/hello# ./hello
Hello world

 

이와 같이 CMake를 이용하면 add_executable() 명령문 한 줄로 빌드가 가능하므로 Makefile을 직접 작성하는 것에 비해 매우 편리한 것을 알 수 있다.

 

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

댓글

Designed by JB FACTORY