.so와 .a 파일

소스 코드를 컴파일하여 실행 파일을 만들 때, .so와 .a 파일을 만들게 됩니다. 이 두 파일은 모두 라이브러리 파일입니다. 그러나 이 둘은 목적과 사용 방법이 다르기 때문에, 이들의 차이점을 이해하는 것이 중요합니다.

.so 파일

.so는 'shared object' 파일의 약어입니다. .so 파일은 라이브러리를 동적으로 링크하는 데 사용됩니다. 즉, 라이브러리가 실행 파일에 포함되지 않으며, 실행 파일이 라이브러리를 참조합니다. 이 방법은 라이브러리가 여러 프로세스에서 공유되는 경우에 메모리를 절약하고, 라이브러리의 업데이트가 더 쉽다는 장점이 있습니다.

.a 파일

.a는 'archive' 파일의 약어입니다. .a 파일은 라이브러리를 정적으로 링크하는 데 사용됩니다. 즉, 라이브러리가 실행 파일에 직접 포함됩니다. 이 방법은 라이브러리가 실행 파일에 포함되기 때문에, 실행 파일이 라이브러리를 참조하기 위해 라이브러리의 별도의 복사본이 필요하지 않다는 장점이 있습니다.

결론

.so 파일과 .a 파일은 모두 라이브러리 파일이지만, 이들은 목적과 사용 방법이 다릅니다. .so 파일은 동적 링크를 지원하는 라이브러리를 만들 때 사용되며, .a 파일은 정적 링크를 지원하는 라이브러리를 만들 때 사용됩니다.