回答:
ライブラリの説明を含むテキストファイルです。
それは可能にlibtool
、プラットフォームに依存しない名前を作成します。
たとえば、次の場所にlibfoo
移動します。
Linuxの場合:
/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を使用してライブラリをリンクします。
私はここで.laファイルについて非常に良い説明を見つけました http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
概要(私が理解した方法):libtoolは静的ライブラリと動的ライブラリを内部で(--diable-sharedまたは--disable-staticを介して)処理するため、ビルドするライブラリファイルにラッパーを作成します。これらは、libtoolがサポートする環境ではバイナリライブラリファイルとして扱われます。