답변:
라이브러리에 대한 설명이 포함 된 텍스트 파일입니다.
libtool
플랫폼 독립적 인 이름을 만들 수 있습니다 .
예를 들어 다음으로 libfoo
이동하십시오.
리눅스에서 :
/lib/libfoo.so # Symlink to shared object
/lib/libfoo.so.1 # Symlink to shared object
/lib/libfoo.so.1.0.1 # Shared object
/lib/libfoo.a # Static library
/lib/libfoo.la # 'libtool' library
아래에서 Cygwin에서 :
/lib/libfoo.dll.a # Import library
/lib/libfoo.a # Static library
/lib/libfoo.la # libtool library
/bin/cygfoo_1.dll # DLL
Windows MinGW에서 :
/lib/libfoo.dll.a # Import library
/lib/libfoo.a # Static library
/lib/libfoo.la # 'libtool' library
/bin/foo_1.dll # DLL
다음 과 같은 일을 이해함으로써 libfoo.la
플랫폼간에 보존되는 유일한 파일입니다 libtool
.
라이브러리의 특정 플랫폼 구현에 의존하지 않습니다.
libtool
객체 파일 ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) 을 연결하는 데 의존 할 수는 있지만 .la없이 라이브러리를 배포하려면 링크하기가 매우 어려울 것입니다 Cygwin 또는 mingw를 사용하여?
http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files 에 따르면 종속성을 처리해야합니다. 그러나 pkg-config를 사용하는 것이 더 나은 옵션 일 수 있습니다.
완벽한 세상에서 종속성이 필요한 모든 정적 라이브러리에는 pkg-config에 대한 고유의 .pc 파일이 있으며 해당 라이브러리에 정적으로 연결하려는 모든 패키지는 pkg-config --static을 사용하여 라이브러리를 연결합니다.
http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html에서 .la 파일에 대한 매우 좋은 설명을 찾았습니다.
요약 (내가 이해 한 방법) : libtool은 내부적으로 --diable-shared 또는 --disable-static을 통해 정적 및 동적 라이브러리를 처리하므로 빌드 한 라이브러리 파일에 래퍼를 만듭니다. libtool 지원 환경에서 이진 라이브러리 파일로 처리됩니다.