link strategy

정적 링크는 함께 담고, 동적 링크는 실행 때 빌린다

링크 방식의 차이는 성능 용어보다 배포 형태로 이해하면 쉽습니다. 라이브러리 코드가 실행 파일 안에 들어가느냐, 밖에 남아 공유되느냐가 핵심입니다.

정적 링크

라이브러리 코드가 실행 파일 안으로 복사된다.

실행 파일 main 코드 + 라이브러리 코드가 한 덩어리로 배포된다.
장점 외부 라이브러리 파일이 없어도 실행하기 쉽다.
주의 파일이 커지고 라이브러리 업데이트 때 다시 빌드해야 한다.

동적 링크

실행 파일은 라이브러리 위치를 기억하고 실행 때 연결한다.

실행 파일 + 공유 라이브러리 프로그램은 작고, .dll / .so / .dylib를 함께 찾는다.
장점 여러 프로그램이 같은 라이브러리를 공유하고 업데이트가 쉽다.
주의 대상 환경에 맞는 라이브러리 파일이 없으면 실행이 실패한다.
배포 단순성정적 링크가 유리하다.
파일 크기와 업데이트동적 링크가 유리하다.
진단 포인트실행 실패면 라이브러리 위치도 확인한다.