>  기사  >  동적 라이브러리와 정적 라이브러리의 차이점은 무엇입니까

동적 라이브러리와 정적 라이브러리의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2021-07-23 13:37:1939518검색

차이점: 1. 정적 라이브러리의 확장자는 일반적으로 ".a" 또는 ".lib"입니다. 동적 라이브러리의 확장자는 일반적으로 ".so" 또는 ".dll"입니다. 2. 정적 라이브러리는 컴파일 중에 대상 프로그램에 직접 통합되며 성공적으로 컴파일된 실행 파일은 독립적으로 실행될 수 있습니다. 동적 라이브러리는 컴파일 중에 연결된 대상 프로그램에 배치되지 않습니다. 즉, 실행 파일은 독립적으로 실행될 수 없습니다. .

동적 라이브러리와 정적 라이브러리의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 10 시스템, Dell G3 컴퓨터.

정적 라이브러리와 동적 라이브러리의 가장 중요한 차이점은 라이브러리 가 대상(프로그램) 으로 컴파일되는지 여부입니다.

정적(함수) 라이브러리

일반적으로 (.a 또는 .lib) 확장자를 가지며 이러한 유형의 함수 라이브러리는 일반적으로 libxxx .a 또는 xxx.lib. .a.lib),这类的函数库通常扩展名为libxxx.axxx.lib

这类库在编译的时候会直接整合到目标程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容;但是从升级难易度来看明显没有优势,如果函数库更新,需要重新编译。

动态函数库

动态函数库的扩展名一般为(.so.dll),这类函数库通常名为libxxx.soxxx.dll

이 유형의 라이브러리는

컴파일 중에 대상 프로그램에 직접 통합

되므로 정적 함수 라이브러리를 사용하여 컴파일된 파일은 상대적으로 큽니다. 이 유형의 함수 라이브러리의 가장 큰 장점은 성공적으로 컴파일된 실행 파일을 실행할 수 있다는 것입니다. 독립적으로 함수 라이브러리의 내용을 읽기 위해 외부에 요청할 필요는 없습니다. 그러나 함수 라이브러리가 업데이트되면 다시 컴파일해야 한다는 점에서 이점은 없습니다.

동적 함수 라이브러리

동적 함수 라이브러리의 확장자는 일반적으로 (.so 또는 .dll)입니다. 이러한 유형의 함수 라이브러리는 일반적으로 로 명명됩니다. >libxxx .so 또는 xxx.dll.

프로그램에서 완전히 캡처되는 정적 함수 라이브러리와 달리 동적 함수 라이브러리는 컴파일 중에 프로그램에서 하나의 "포인팅" 위치만 갖습니다. 즉, 실행 파일이 함수 라이브러리 메커니즘을 사용해야 할 때 프로그램은 다음을 수행합니다. 사용하기 위해 함수 라이브러리를 읽습니다. 즉, 실행 파일은 단독으로 실행할 수 없습니다. 이를 통해 제품 기능 업그레이드 관점에서 업그레이드가 용이해지며 전체 실행 파일을 다시 컴파일할 필요 없이 해당 동적 라이브러리만 교체하면 됩니다.

요약하면 다음과 같이 볼 수 없습니다.

🎜🎜제품화의 관점에서 게시된 알고리즘 라이브러리나 함수 라이브러리는 가능한 한 동적이어야 하므로 업데이트 및 업그레이드가 편리해야 합니다. 전체 실행 파일을 다시 컴파일하면 새 버전만 동적입니다. 라이브러리는 이전 동적 라이브러리를 대체할 수 있습니다. 🎜🎜함수 라이브러리 통합의 관점에서 게시된 모든 하위 라이브러리(2개 이상)를 동적 라이브러리에 통합하여 외부 인터페이스를 제공하려면 모든 하위 라이브러리를 정적 라이브러리로 컴파일해야 합니다. 하위 라이브러리는 대상 동적 라이브러리로 컴파일되고 최종 통합 라이브러리는 외부 세계에 기능을 제공할 수 있습니다. 🎜🎜더 많은 관련 지식을 알고 싶다면 🎜FAQ🎜 칼럼을 방문해주세요! 🎜

위 내용은 동적 라이브러리와 정적 라이브러리의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.