ELF 파일포멧을 공부하던중 링커에 대한 애기가 많이나와서 공부하는데 이해가 안가서 질문드립니다.
만약 main.c 라는 소스코드가 컴파일되면 처음에는 즉 전처리문이 전부처리된 소스코드가 만들어지고 ( main.i )
그리고 C 소스코드는 어셈블리어로 변환되고 ( main.s )
그다음 어셈블러를 통해서 main.s 의 어셈블리어는 기계어로 변환되고 ( main.o )
main.o 라는 파일은 ELF 포멧이라는데 ELF 포멧이면 실행이 가능한것 아닌가요?
왜 또 링커를 거쳐서 실행파일이 된다는것이죠?
main.o 를 링크할때 ld 를 호출해 C 표준라이브러리와 링크해 실행파일을 만든다라는데
무슨뜻인거죠?
아직 제가 지식이 부족해서 쉽고 자세히 설명해주면 감사합니다 ㅠㅠ ^^