DLL, SO파일은 라이브러리 파일이다.
라이브러리(Library)
소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는것을 피하기 위해 표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것이다.
DLL(Dynamic-Link Library)
- DLL은 동적 연결 라이브러리로써, 실행 파일에서 해당 라이브러리의 기능을 사용 시에만, 라이브러리 파일을 참조하여 기능을 호출한다.
- 정적 링크(Static-Link Library)와는 다르게 컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치정보만 갖고 그 함수를 호출할 수 있게 한다.
- DLL파일의 컴파일 아키텍쳐가 x64인지 x86인지 확인하여야 한다. 아키텍쳐가 다른 프로그램에서 호출할 수 없다.
- Windows 운영체제에서 사용하는 PE(Portable Executable) 파일이다.
SO(Shared Object)
- SO는 공유 객체로써, 하나 이상의 프로그램에서 리소스를 오프로드하는 데에 사용할 수 있는 정보가 포함되어 있다.
- 리눅스에는 dll이 존재하지 않는다. 대신 SO라는 동적 라이브러리 개념이 있다.
- Linux에서 사용하는 ELF(Executable and Linkable Format) 파일이다.
DLL과 SO의 차이점
- 프로그램 관점에서 바이너리 형식이 다르다.
- Process 구조의 차이점이 있다.
- DLL은 Windows 운영체제에서, SO는 Linux 운영체제에서 사용된다.
- 따라서 기본적으로는 Windows에서 SO파일을 불러오지 못하고, Linux에서는 DLL파일을 불러오지 못하는 한계가 있다.
#References
https://goddaehee.tistory.com/185
DLL이란? (Dynamic Link Library)
DLL이란? (Dynamic Link Library) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ DLL "Dynamic Link Libaray" ] 입니다. : ) 라이브러리 (Library) (Dynamic Link Library을 알아보기 전 라이브러리가 무엇인..
goddaehee.tistory.com
SO 파일 (정리 및 여는 방법) – How2Open Blog
.SO 파일 확장자를 가진 파일은 공유 라이브러리 파일입니다. 여기에는 하나 이상의 프로그램에서 리소스를 오프로드하는 데 사용할 수있는 정보가 포함되어 있으므로 SO 파일을 호출하는 응용
how2open.com
http://tmmse.xyz/2020/04/22/linuxandwindows/
프로그램 실행 관점에서 본 windows 와 linux의 차이
본 포스트는 프로그램의 실행 관점에서 어떻게 windows 와 linux가 다른지에 대해 얘기하고자 한다. 그리고, 다음 포스트에서 그 차이를 어떻게 맞출 수 있는지에 대해 설명하고자 한다. Ubuntu와 같
tmmse.xyz
'ETC' 카테고리의 다른 글
ESLint와 Prettier (2) - VSCode에 ESLint와 Prettier설치 (0) | 2022.10.17 |
---|---|
ESLint와 Prettier (1) - ESLint와 Prettier의 차이점 (0) | 2022.10.17 |
Ubuntu 18.04 관리자 권한으로 폴더 프로그램 사용 (0) | 2022.09.29 |
[VSCode] Prettier 확장 / .prettierrc 파일 작성법 (0) | 2022.05.15 |
티스토리에 사이드 목차 추가하기 (0) | 2022.05.02 |