CMake를 이용한 C 언어 프로그래밍 #1 : Hello world
- 개발환경/CMake
- 2020. 5. 15.
반응형
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을 직접 작성하는 것에 비해 매우 편리한 것을 알 수 있다.
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'개발환경 > CMake' 카테고리의 다른 글
CMake를 이용한 C 언어 프로그래밍 #3: 라이브러리 (0) | 2020.12.24 |
---|---|
리눅스에 CMake 설치하기 : 3.18.0 버전 (0) | 2020.07.26 |
리눅스에 CMake 설치하기 : 3.17.3 버전 (0) | 2020.07.26 |
CMake를 이용한 C 언어 프로그래밍 #2 : 컴파일 정의(definition) 추가하기 (0) | 2020.06.11 |
CMake 커맨드: 이것저것 (0) | 2020.06.07 |
CMake 커맨드: OPTION (0) | 2020.06.07 |
CMake 문법 - 빌드 결과 생성 경로 지정하기 (0) | 2019.09.07 |
리눅스에 CMake 설치하기 (0) | 2019.08.02 |