- Published on
"hello.c"가 실행 파일이 되는 여정을 원자 단위로 추적한다. 전처리 / 컴파일 / 어셈블 / 링크의 4단계, ELF 파일 레이아웃, 심볼 테이블과 재배치, 정적 라이브러리의 아카이브 구조, 동적 링커 ld.so의 GOT/PLT 트릭, C++ 이름 맹글링의 혼돈, LTO가 왜 "전체 프로그램 최적화"인지, 그리고 Rust/Go가 왜 고전적 링킹과 다른 길을 갔는지 — 오늘도 우리가 `gcc hello.c -o hello` 라고 칠 때 실제로 벌어지는 일들.