Cmake에 관해서 찾아보다가 좋은 블로그 글을 발견했다.

리눅스 환경의 C++에 대한 기본

우분투에서 C++ 개발하기 (1) - 컴파일 과정 및 gcc

위 블로그에서 기본적인 상식을 알고가자. gcc를 이용한 컴파일, 라이브러리 이용방법등이 적혀있다.

Makefile 사용

우분투에서 C++ 개발하기 (2) - Make

프로젝트가 거대해지면 라이브러리 경로와 라이브러리 파일등을 입력하는게 매우 번거로워 진다. 이를 편하게 하기 위해 리눅스에서는 Makefile이라는 툴을 쓴다.

Makefile은 빌드에 필요한 스크립트를 텍스트 형식으로 저장한 파일이다.

이 Makefile의 스크립트를 해석하는 프로그램이 make이다.

[타깃 이름] : [타깃에 필요한 파일들]
	[타깃 실행 코드]

위와 같은 형태로 작성한다. 아래는 예시이다.

my.o : my.h my.cpp
	g++ -c my.cpp

main.o : my.h main.cpp
	g++ -c main.cpp

test : my.o main.o
	g++ -o test main.o my.o

all : test

clear :
	rm -f my.o main.o test

그리고 아래와 같이 실행한다.

make my.o

make all

make rm

...

CMake

우분투에서 C++ 개발하기(3) - CMake

CMake를 통해 이러한 작업을 간소화할 수 있다. CMake는 사용자가 작성한 스크립트를 해석해서 Makefile을 만들어준다.

make명령이 makefile을 자동으로 인식했던 것 처럼 cmake파일도 CMakeLists.txt.파일을 인식한다.