linux gcc에서 동적으로 컴파일 하는건 그냥 하면 되지만
정적으로 컴파일하는건 -static 옵션을 넣어야 한다.
그럼 정적으로 컴파일 했을때 얻는 장단점은 무엇일까?
원래 리눅스에서 동적으로 컴파일할때는 프로그램이 실행할때마다 libc(라이브러리)가 올라간다.
때문에 printf라는 함수를 실행시키기 위해서 libc에서 printf함수를 찾아서 실행시킨다.
하지만, 정적으로 컴파일하면 linking과정에서 함수가 다올라가게된다.
때문에 동적보다 속도는 빠르게 되지만, 함수가 프로그램에 올라가므로 파일 크기는 커지게 된다.
동적으로 컴파일 했을때는 파일크기가 8600이지만 정적으로 컴파일 햇을때는 파일크기가 9086000만큼 확연히 차이가 난다는 것을 알 수 있다.
'system > level1' 카테고리의 다른 글
리눅스 공유라이브러리 간단하게 제작 (0) | 2017.04.13 |
---|---|
컴파일 과정(LINUX GCC) (0) | 2017.04.10 |
리눅스 파일 권한 설정 (0) | 2017.04.09 |
리눅스 기초(8086 메모리 구조) (0) | 2017.04.06 |
리눅스 기초(리눅스 디렉토리) (0) | 2017.04.04 |