Modern CMake 고급 — BUILD/INSTALL_INTERFACE·Presets·cmake -E
Modern CMake의 고급 도구 모음 — 자주 안 보이지만 실무에서 결정적인 기능들.
228개의 포스트 · 8/10 페이지
Modern CMake의 고급 도구 모음 — 자주 안 보이지만 실무에서 결정적인 기능들.
타겟 중심 접근법, 피해야 할 안티패턴, 대규모 프로젝트 구성 전략.
install 명령으로 빌드 결과물 배포, CPack으로 플랫폼별 패키지 생성.
CMake 테스트 프레임워크 CTest와 Google Test, Catch2 연동 방법.
외부 라이브러리 탐색, FetchContent, 그리고 의존성 관리.
사용자 설정 가능한 빌드 옵션과 CMake 캐시 시스템.
Modern CMake의 핵심: 타겟 중심 접근법과 라이브러리 생성.
CMake 스크립트의 기본 문법: 변수, 리스트, 조건문, 반복문, 함수.
왜 메타 빌드 시스템이 필요한가, CMake가 그 자리에서 무엇을 하는가, 그리고 5줄 짜리 첫 프로젝트.
ThreadSanitizer로 멀티스레드 버그 추적 — happens-before 모델, false positive, atomic·mutex 통합.
LeakSanitizer로 메모리 누수 추적 — 보고서 해석, suppression, 일회성·반복 분석 패턴.
황금 조합 -fsanitize=address,undefined를 실제로 켜고 운영하는 자세한 방법 — 옵션, 환경 변수, suppression, 흔한 오탐.
C/C++ 런타임 검사 도구 Sanitizer 계열의 역할, 종류별 선택, 실무 도입 순서.
Valgrind suppression 문법, 외부 라이브러리 우회, Sanitizer와의 분담, CI 통합 실전.
Valgrind의 두 동시성 분석 도구 비교 — Helgrind의 락 추적과 DRD의 vector clock, 언제 무엇을.
Memcheck의 네 가지 누수 분류 — definitely/indirectly/possibly/still reachable — 정확한 의미와 우선순위.
Memcheck의 모든 핵심 옵션 — leak-check, track-origins, error-limit, 그리고 비용 vs 정확도 트레이드오프.
Sanitizer 시대에도 Valgrind가 살아남은 이유, 세 핵심 도구의 역할, 도입 자리.
RTOS C API를 C++ 객체로 감싸는 패턴을 정리합니다. RAII MutexGuard와 ScopedIRQDisable, std::thread/std::mutex의 한계와 직접 xTaskCreate가 결정성을 갖는 이유, ETL로 STL을 대체하는 법, C++20 coroutine을 RTOS 위에 얹는 방식까지 다룹니다.
범용 HAL 구조 — 벤더 종속성 격리, 다중 보드/MCU 지원, 시리즈 마무리.
UART, SPI, I2C — peripheral을 type-safe class로. Blocking, interrupt, DMA 패턴.
GPIO pin = type — 컴파일 타임에 핀 설정 검증, runtime 비용 0.
MMIO를 type-safe하게 — volatile, bit field, register wrapper class.
임베디드의 DI 패턴 — Construct-On-First-Use, static dependency injection, service locator.