전처리
소스 코드의 주석 제거 및 헤더 파일 병합
전처리 된 소스 코드 파일(*.i)로 변환
컴파일
오류 처리, 코드 최적화 작업을 하고 어셈블리어(*.s)로 변환
어셈블러
어셈블리어를 목적 코드(Object Code)(*.o)로 변환.
링크
프로그램 내의 라이브러리 함수, 타 목적 코드 등과 결합해 실행 파일(*.exe, *.out) 생성.
정적 라이브러리 (*.a)
빌드 시, 직접 실행 파일에 포함되어 독립적인 실행 파일 생성.
생으로 포함되다 보니 해당 라이브러리를 사용하는 다른 실행 파일과 내용이 중복될 수 있어 파일의 크기가 증가.
실행 속도가 빠르지만 변화에 대처하기 어렵고 파일 크기가 크다.
동적 라이브러리 (*.so, *.dll)
런타임 시, 필요한 라이브러리를 로드해서 사용.
라이브러리의 코드가 별도의 공유 라이브러리 파일(*.dll, *.so 등)로 존재
실행 속도가 느리지만 변화에 대처할 수 있고 파일 크기가 작다.
'운영체제' 카테고리의 다른 글
IPC - Inter Process Communication (0) | 2023.07.23 |
---|---|
은행원 알고리즘 (0) | 2023.07.23 |
프로세스 (0) | 2023.07.23 |
페이지 교체 알고리즘 (0) | 2023.07.22 |
메모리 할당 방법 (0) | 2023.07.22 |