[자동차 SW 개발 정리] 소스코드 빌드 - CMake
#include와 같은 헤더파일, libXXX.so와 같은 라이브러리 파일 등 dependency를 연결하여 소스코드를 빌드할 수 있도록 해주는 빌드 툴이다. 이 외에도 실행파일 이름, 빌드할 소스코드 목록들 선택, 빌드 후에 처리 등 기능이 매우 많다.
장점은 차분빌드(icremental build)라고 해서, 한번 빌드한 후 변경된 것만 재빌드후 결과물을 만들어낸다. 또한 VSCode, CLion 등 IDE에서 코드 인텔리전스 기능을 이용하여, 생각나지 않는 함수 이름, 변수, ENUM 값 등을 일부 글자만 적어서 키보드 방향키로 찾는 ide 존재 이유인 주 기능을 이용할 수 있다.
기능이 진짜 많아서, 익숙해지면서 필요할때마다 공식 홈페이지를 뒤지면서 알아가야한다.
Java 진영에서는 Maven, Gradle과 동일한 위치에 있다.
다만 가장 다른 점은 빌드 시간이다. 자동차에 들어가는 수많은 부품 중 일부는 리눅스에서 돌아가는 C/C++로 만들어진 실행파일로, 이 리눅스 실행 파일을 빌드하는데 3시간 이상 걸리기도 한다. java는 길어야 5~10분이지만, C/C++은 병렬처리로 빌드해도 시간이 오래 걸린다. 이 특징 때문에 (한 것은 별로 없는데 시간만 가버려서, 속상하기도 하다가) 혼자 있을때 많이 울었다.
(이거 말고도 다른 이유로도 많이 울기는 했찌..)

고작.. 실행 결과 하나보겠다고.. 30분이 날아가고.. 또 다시 수정하면 30분.. ㅋ... SSAFY에서 자바로 스프링 부트 할때는 에러 나면 바로 고쳤거나 CI 단계에서 빡세게 해도 10분 안이었는디..