C++ Make File

Linux에서 C++로 프로젝트를 하다보면 Makefile을 통해 빌드를 관리하게 된다.
흔히 Makefile에 필요한 파일을 모두 적어주곤 하는데 매번 다시 파일 이름을 적기란 귀찮다.
그래서 확장자를 기반으로 파일을 자동으로 인식해서 컴파일 할수 있도록 해보았다.

사용법

이 파일을 복사후 원하는 project폴더에 넣어 둔다.

make init을 통해 project폴더의 구조를 자동으로 구축할수 있다. 동시에 src/main.cpp, test/test.cpp를 만들어 예제를 제공해준다.

make를 통해 build할수 있으며 이때에는 release mode로 빌드 된다.

make test는 test파일을 build 한후 자동으로 test를 실행하며 즉시 결과를 return 한다. 이 테스트는 gtest를 기준으로 작성되었으며 local machine에 gtest 라이브러리와 그 헤더가 필요로 한다. 일반 빌드를 할때에는 필요 없다.

make debug는 debug용으로 build 한다.

make run은 자동으로 빌드후 실행한다.

CPPFLAGSTEST_FLAGS는 각각 일반 빌드와 TEST빌드에 쓰이는 컴파일러 플레그이다. 이를 수정해서 추가 옵션을 컴파일러에 전달할 수 있다.

구조

디렉토리

우선 이 Makefile은 다음과 같은 구조를 자동으로 구성한다.

이중 /src와 /test 디렉토리의 확장자가 .cpp인 파일들을 인식하여 컴파일 되게 된다1. /src는 소스 코드용, /test는 테스트 코드용 디렉토리이다.

다운로드

참고


  1. .cc가 아니라 .cpp인 이유는 이미 짜놓은 코드가 .cpp가 많아서 이다. 혹시 .cc를 인식하기를 원한다면 EXT를 cpp에서 cc로 바꾸어 주기만 하면 된다.