학부 수업 시간에 C언어를 배웠고, 리눅스 환경에서 컴파일하는 명령어나, 방법도 안 배운 건 아닌데, 언제부턴가 습관적으로 gcc -o a a.c 나 ./a와 같은 명령어만 사실 무슨 작업을 하는 지도 까먹어 간채 무의식적으로 썼던 것 같다. (과제는 c언어 코딩하는데 소스코드 작성하고 컴파일해서 시행해서 잘 실행만 되기만 하면 되니까..) 이번 글에선 우리가 작성한 c언어 소스파일(.c)이 어떤 과정을 거쳐 컴파일되어 실행파일로 우리 눈 앞에서 실행되는지 다뤄보고자 한다. 전체적인 흐름을 나타내는 사진이다. 우리에게 익숙한 .c 소스 파일, c컴파일러, .o 오브젝트 파일도 여럿 보인다. 과정은 크게 4가지로 나누어서 설명할 것이고, 해당 단계까지 실행할 수 있는 gcc 명령어를 옵션과 함께 설명할 것..