태그: Clang
7편
-
C++ 코드 생성 방식 비교: 템플릿, X-Macro, Clang libTooling, Protobuf, C++26 리플렉션
직렬화·RPC 스텁·에러 코드 매핑처럼 반복되는 C++ 코드를 템플릿, X-Macro, Clang libTooling, Protobuf·FlatBuffers, Python 스크립트, C++26 리플렉션 중 무엇으로 생성할지 비교하고, CMake 통합과 생성 코드 관리에서 생기는 문제를 정리합니다.
-
C++ 커스텀 컴파일러 패스 | Clang 플러그인·AST 변환·커스텀 진단
팀 코드 규칙을 컴파일 단계에서 강제하는 Clang 플러그인 작성법입니다. PluginASTAction 구조, RecursiveASTVisitor로 매직 넘버와 금지 함수 호출 탐지, DiagnosticsEngine 커스텀 경고, undefined symbol·플러그인 로드 실패 해결을 다룹니다.
-
C++ Sanitizer 동작 원리와 설정: ASan·UBSan·TSan·MSan 오버헤드, CMake 통합
use-after-free를 잡는 ASan, 데이터 레이스를 잡는 TSan, 미정의 동작을 잡는 UBSan, 초기화 안 된 메모리를 잡는 MSan이 각각 어떻게 동작하고 얼마나 느려지는지, ASan·TSan을 함께 못 쓰는 이유와 CMake 프리셋·CI job 분리 방법을 설명합니다.
-
C++ 컴파일러 비교 | GCC vs Clang vs MSVC, 어떤 걸 써야 할까?
전처리, 구문 분석, 최적화, 코드 생성 단계를 직접 실습하며 같은 코드가 컴파일러마다 다르게 빌드되는 이유를 살펴보고, GCC의 -O2와 -O3 선택, Clang의 친절한 에러 메시지와 정적 분석, MSVC의 특징을 비교해 프로젝트에 맞는 컴파일러를 고릅니다.
-
PGO·LTO로 C++ 컴파일러 최적화하기: -O2 vs -O3 차이와 측정법
-O2와 -O3가 실제로 무엇을 다르게 하는지, LTO(Full·Thin)로 파일 경계를 넘는 인라인을 켜는 법, PGO의 계측→실행→재컴파일 3단계를 GCC·Clang·MSVC 옵션별로 설명하고 -march=native로 인한 SIGILL 같은 배포 함정도 다룹니다.
-
C++ 개발 환경 구축 2026 | GCC 15·Clang 22·MSVC 14.51·C++23·C++26
Windows에서는 Visual Studio, MinGW, WSL 중 무엇을 고를지, macOS에서는 Command Line Tools와 Homebrew GCC를, Linux에서는 배포판별 패키지를 설치해 첫 프로그램을 빌드합니다. g++을 찾을 수 없음, cl 인식 실패, IntelliSense 오류 해결법도 담았습니다.
-
GCC vs Clang vs MSVC: 같은 코드로 비교한 최적화 플래그, C++23/26 지원, 플랫폼 차이
같은 example.cpp를 GCC, Clang, MSVC로 빌드해 최적화 플래그별 결과와 에러 메시지가 어떻게 다른지 비교하고, C++23·C++26 표준 지원 현황, 표준 라이브러리 구현 차이, 운영체제별로 어떤 컴파일러를 권장하는지 정리합니다.