태그: linking
3편
-
C++ ODR(단일 정의 규칙): 헤더 정의 링크 에러, inline·템플릿 예외, 링커가 못 잡는 위반
변수와 함수는 프로그램 전체에서 정의가 하나여야 한다는 ODR을 기준으로, 헤더에 함수를 정의해 생기는 링크 에러와 inline, 템플릿, constexpr 변수가 예외가 되는 이유, 번역 단위마다 정의가 달라 링커가 못 잡는 위반을 nm으로 확인하는 방법을 설명합니다.
-
C++ 링킹 이해하기: 정적 vs 동적 링킹, 심볼 확인, undefined reference 해결, LTO
C++ 링킹 정리. 정적 링킹과 동적 링킹의 차이, 오브젝트 파일이 결합되는 과정, nm으로 심볼 확인하기, undefined reference 에러 해결, 링크 타임 최적화(LTO)를 예제로 다룹니다.
-
C++ 이름 맹글링: _Z 심볼 읽기, nm·c++filt로 디맹글링, extern C 링크 에러
C++ 컴파일러가 오버로딩과 네임스페이스를 구분하려고 함수 이름을 _Z로 시작하는 심볼로 바꾸는 방식, nm과 c++filt로 심볼을 확인하고 디맹글링하는 방법, extern "C"로 C와 연결할 때 생기는 링크 에러 해결법을 설명합니다.