소스코드 =>컴파일러 (gcc, clang, MSVC등) => 목적코드 => 링커 (LTO) (주로 컴파일러에 포함)=> 실행파일 어셈블리어랑 기계어 차이점?기계어는 2진수로 이뤄진 CPU가 직접 실행할 수 있는 코드임. 0과 1로된 코드. (binary, hex로 표현)어셈블리어는 어셈블러에 의해서 기계어로 번역되고, 기계어를 사람이 읽기 쉽게 이름을 붙인 거임. (mov eax,1 처럼 표현)컴파일러가 어셈블리어로도 바꿔주고 기계어로도 바꿔줌. 링커가 하는일? 매우 많음위에처럼 여러 개의 목적코드를 하나의 실행파일로 만들어줌.심볼이나 함수 주소를 연결함.LTO를 수행해 최적화함.말고도 더더 많음. LTO: link time optimization ?간단한 함수들을 inline처리해줌 . -> 속도향상..