2012-11-18 4 views
2

나는 플러그인이 특정 기능을 담당하고 있으며 응용 프로그램에서 사용하기 위해로드 된 구성 요소임을 이해합니다.플러그인 및 공유 객체 라이브러리

linux의 공유 객체 라이브러리 (.so) 및 Windows의 .dll은 응용 프로그램에서 런타임에로드되는 라이브러리입니다.

.dll/.so가 항상 플러그인인 경우 어떻게되는지 알고 싶습니다. 모든 플러그인 .dll/.sos입니까?

답변

1

사실 .dll.so은 동적 라이브러리입니다. 정적 라이브러리라는 다른 유형 라이브러리도 있습니다. Linux의 경우 확장자는 .a입니다.

프로그래머는 코드를 쉽게 유지 관리하기 위해 라이브러리를 사용하는 경향이 있습니다. 또한 라이브러리가 두 개 이상의 응용 프로그램에서 공유되는 경우 주 메모리 사용으로 인해 공유 라이브러리가 선택됩니다.

이 논리는 플러그 인을 포함하는 구조에 적용 할 수 있습니다. 코드 조각이 응용 프로그램의 단일 프로세스에서만 사용되는 경우 정적 라이브러리를 플러그인으로 사용할 수 있습니다. 그러나 코드가 여러 프로세스에서 공유되는 경우 이러한 프로세스가 동일한 응용 프로그램의 인스턴스 일지라도 공유 라이브러리를 사용해야합니다.

공유 라이브러리를 플러그인으로 사용하는 경우 알려진 방법으로 라이브러리를 포함하지 않아야하며 실행 파일을 라이브러리에 직접 연결하면 안됩니다. 대신 libdl을 사용해야합니다. here을보고 dynamic loading을 찾으십시오.

관련 문제