libtool의 .la 파일은 무엇인가요?


답변:


139

라이브러리에 대한 설명이 포함 된 텍스트 파일입니다.

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.

  • 라이브러리 의존성
  • 실제 파일 이름
  • 라이브러리 버전 및 개정

라이브러리의 특정 플랫폼 구현에 의존하지 않습니다.


5
당신이 플랫폼 특정에 .la 파일을 설정에 너무 libfoo.la처럼 LIB 파일을 공유하는 방법 -> libfoo.so *.
theactiveactor

6
libfoo.la는 메타 정보 만 보유 할 수 없습니다. 즉 libfoo.so.xyz를 찾을 수있는 곳에 작성된 libfoo.la (텍스트 파일)
Artyom

4
.la 파일을 생성하려면 libtool (예 : automake)을 사용해야합니까? libtool객체 파일 ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) 을 연결하는 데 의존 할 수는 있지만 .la없이 라이브러리를 배포하려면 링크하기가 매우 어려울 것입니다 Cygwin 또는 mingw를 사용하여?
dma_k

누구나이 버전을 비활성화하려면 -version-info 대신 _la_LDFLAGS에서 -avoid-version을 사용할 수 있습니다.
laishiekai

14

http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files 에 따르면 종속성을 처리해야합니다. 그러나 pkg-config를 사용하는 것이 더 나은 옵션 일 수 있습니다.

완벽한 세상에서 종속성이 필요한 모든 정적 라이브러리에는 pkg-config에 대한 고유의 .pc 파일이 있으며 해당 라이브러리에 정적으로 연결하려는 모든 패키지는 pkg-config --static을 사용하여 라이브러리를 연결합니다.


10

http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html에서 .la 파일에 대한 매우 좋은 설명을 찾았습니다.

요약 (내가 이해 한 방법) : libtool은 내부적으로 --diable-shared 또는 --disable-static을 통해 정적 및 동적 라이브러리를 처리하므로 빌드 한 라이브러리 파일에 래퍼를 만듭니다. libtool 지원 환경에서 이진 라이브러리 파일로 처리됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.