cmake 인자

김민준·2025년 6월 4일

catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Debug
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
에 대한 정리

🧩 1. --cmake-args

이건 catkin build 명령에 CMake에 전달할 추가 인자들을 지정하겠다는 뜻

catkin build는 내부적으로 CMake를 호출해서 빌드를 진행.

그래서 이 옵션을 통해 CMake에게 전달할 "추가 설정"을 줄 수 있음.

예: catkin build --cmake-args -D옵션=값

📦 요약:

--cmake-args는 "CMake에게 옵션을 넘기겠습니다"라는 뜻의 플래그

🧩 2. -DCMAKE_BUILD_TYPE=Release

이건 CMake의 빌드 모드 설정. 아래와 같은 모드들이 있다:
모드 설명
Debug 디버깅 심볼 포함, 속도 느림, 오류 추적에 좋음
Release 최적화 적용, 실행 속도 빠름, 디버깅 어려움
RelWithDebInfo 최적화 + 디버깅 정보 일부 포함
MinSizeRel 최적화 + 최소 크기 바이너리 생성용

🚀 우리가 쓰는 Release는:

최적화를 많이 적용해서 (빌드속도 x)실행 속도 빠르게 함

디버깅은 어려울 수 있음

실사용, SLAM, 센서 데이터 처리 등 실시간성 요구 시 적합

📦 전체 정리

🔧 CMake 빌드 타입 비교: Debug vs Release

항목DebugRelease
빌드 속도빠름 또는 보통
(최적화 없이 컴파일 빠름)
느릴 수 있음
(최적화 연산으로 인해 컴파일 오래 걸림)
실행 속도느림
(디버깅 심볼 포함, 최적화 없음)
빠름
(컴파일러 최적화 적용)
디버깅 용이성매우 좋음
(gdb, valgrind 등으로 디버깅 가능)
어려움
(디버깅 정보가 생략되어 있음)

💡 Tip: 개발 초기에는 Debug, 성능 확인 및 배포 전에는 Release를 권장.

Debug 빌드: /ouster/points 주기적 끊김, CPU 사용량 높음

Release 빌드: 프레임 드롭 없이 부드럽게, CPU 사용량 감소

catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release

= “CMake야, Release 모드로 이 패키지들을 빌드해줘” 라는 뜻.

🔧 이걸 설정하면 컴파일된 드라이버가 속도와 성능 면에서 훨씬 안정적이고 빠르게 동작!
✅ 참고 예시
명령어 의미
catkin build 기본 설정으로 빌드
catkin build --cmake-args -DCMAKE_BUILD_TYPE=Debug 디버깅 목적
catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release 최적화된 성능 목적

profile
지금까지 해온 여러 활동들을 간략하게라도 정리해보고자 합니다.

0개의 댓글