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, 센서 데이터 처리 등 실시간성 요구 시 적합
📦 전체 정리
Debug vs Release| 항목 | Debug | Release |
|---|---|---|
| 빌드 속도 | 빠름 또는 보통 (최적화 없이 컴파일 빠름) | 느릴 수 있음 (최적화 연산으로 인해 컴파일 오래 걸림) |
| 실행 속도 | 느림 (디버깅 심볼 포함, 최적화 없음) | 빠름 (컴파일러 최적화 적용) |
| 디버깅 용이성 | 매우 좋음 ( 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 최적화된 성능 목적