172

libtoolの.laファイルは何のためのものですか?それらは共有オブジェクトでどのように使用されますか?

4

3 に答える 3

158

これは、ライブラリの説明を含むテキストファイルです。

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

  • ライブラリの依存関係
  • 実際のファイル名
  • ライブラリのバージョンとリビジョン

ライブラリの特定のプラットフォーム実装に依存することなく。

于 2009-08-06T10:22:48.110 に答える
15

http://blog.flameeyes.eu/2008/04/14/what-about-those-la-filesによると、依存関係を処理するために必要です。ただし、pkg-config を使用する方が適切なオプションになる場合があります。

完璧な世界では、依存関係を必要とするすべての静的ライブラリに pkg-config 用の独自の .pc ファイルがあり、そのライブラリに静的にリンクしようとするすべてのパッケージは、 pkg-config --static を使用してリンク先のライブラリを取得します。

于 2012-02-09T19:08:40.070 に答える
13

ここで.laファイルについての非常に良い説明を見つけました http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html

まとめ(私が理解した方法):libtoolは静的ライブラリと動的ライブラリを内部で(--diable-sharedまたは--disable-staticを介して)処理するため、ビルドするライブラリファイルにラッパーを作成します。これらは、libtoolでサポートされている環境でバイナリライブラリファイルとして扱われます。

于 2012-08-22T22:00:20.977 に答える