블로그
-
Visual Studio C++ 빌드가 느릴 때: PCH·/MP 병렬 컴파일·증분 링크·Unity Build 설정
느린 Visual Studio C++ 빌드를 프리컴파일 헤더(PCH), /MP 병렬 컴파일, /INCREMENTAL 증분 링크, 전방 선언으로 include 줄이기, Unity Build, C++20 모듈로 단축하는 설정 방법과 각 기법의 주의사항을 설명합니다.
-
C++ 반복자 무효화: vector iterators incompatible 크래시 원인과 해결
vector iterators incompatible 같은 크래시를 일으키는 반복자 무효화를 vector·list·map·unordered_map·deque별 규칙으로 정리하고, 범위 기반 for에서 erase하는 실수를 포함한 10가지 오류 패턴과 안전한 삭제 방법을 설명합니다.
-
C++ 템플릿 에러 메시지 읽는 법: 첫 줄·note·candidate 순서와 자주 나오는 패턴
수백 줄짜리 C++ 템플릿 에러에서 맨 위 첫 줄, note: because, candidate 목록 순으로 원인을 찾는 방법을 설명하고, no matching function이나 incomplete type 같은 10가지 패턴과 GCC·Clang·MSVC 메시지 차이를 비교합니다.
-
C++ 메모리 누수 찾기: Valgrind·ASan·CRT 디버그 힙 사용법과 누수 패턴
Valgrind memcheck와 AddressSanitizer, Visual Studio CRT 디버그 힙으로 C++ 메모리 누수를 찾는 방법을 설명하고, new/delete 불일치, 예외 경로, shared_ptr 순환 참조, 컨테이너에 저장한 포인터 같은 누수 원인과 RAII 해결법을 다룹니다.
-
C++ 초보자가 자주 하는 실수 Top 15 | 컴파일 에러부터 런타임 크래시까지
C++ 입문자가 가장 자주 겪는 실수(클래스 끝 세미콜론, 헤더 누락, const 참조, 댕글링 포인터, 정수 나눗셈, unsigned 언더플로 등)를 실제 GCC·Clang·MSVC 에러 메시지와 함께 정리하고, 왜 그런 규칙이 있는지와 Sanitizer로 런타임 버그를 잡는 법을 설명합니다.
-
디버그에선 되고 릴리스에서 죽는 코드: C++ 미정의 동작 15가지 패턴과 UBSan
미정의 동작(Undefined Behavior, UB)은 C++ 표준이 결과를 정의하지 않은 코드입니다. 대표적인 UB 패턴 15가지, 디버그와 릴리스에서 동작이 달라지는 이유, UBSan으로 탐지하는 방법을 정리합니다.
-
C++ multiple definition 링커 에러: 헤더 정의 중복의 원인과 해결
헤더에 함수나 전역 변수를 정의했다가 링크 단계에서 multiple definition 에러가 날 때, ODR 규칙으로 원인을 짚고 inline·static·extern 중 무엇으로 고칠지 비교표와 헤더/소스 분리 예제로 판단할 수 있게 합니다.
-
C++ 스택 오버플로우 크래시: 깊은 재귀·큰 지역 배열 진단과 스택 크기 조정
깊은 재귀나 큰 지역 배열 때문에 세그폴트로 죽는 스택 오버플로우를 진단하고, 재귀를 반복문이나 명시적 스택으로 바꾸거나 데이터를 힙으로 옮기는 방법, ulimit과 링커 옵션으로 스택 크기를 조정하는 법까지 다룹니다.
-
C++ const 에러: passing as const 컴파일 에러 원인과 const 정합성
passing as const, discards qualifiers, read-only variable 대입처럼 const 때문에 나는 컴파일 에러 10가지를 원인별로 풀고, const 멤버 함수와 오버로드, 포인터에서 const 위치를 읽는 법, mutable과 const_cast를 써도 되는 경우를 예제로 설명합니다.
-
C++ include 에러 No such file or directory: 헤더 경로·대소문자·순환 include 해결
No such file or directory로 헤더를 못 찾을 때 파일명 오타, -I 경로 누락, Linux의 대소문자 구분, 순환 include 중 무엇이 원인인지 가려내고, CMake·Visual Studio 경로 설정과 전방 선언으로 해결하는 방법을 다룹니다.