GNU/Linux >> Linux の 問題 >  >> Linux

libtool の .la ファイルは何のためのものですか?

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

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 によってプラットフォーム間で保持される唯一のファイルです 何が起こるかを理解できるようにする:

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

ライブラリの特定のプラットフォーム実装に依存しない。


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

<ブロック引用>

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

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

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


Linux
  1. Linux のスパース ファイルとは

  2. メモリ マップド ページと匿名ページとは何ですか?

  3. Linuxでのファイルタグ付けの良い解決策は何ですか?

  1. Linux test -a コマンド テストとは何ですか?

  2. `hostname` のデフォルトのファイルは何ですか?

  3. 最新のファイル システムの何百万ものファイルのパフォーマンスへの影響は何ですか?

  1. bashrcファイルに欠落しているコマンドは何ですか?

  2. `touch`コマンドの正当な使用法は何ですか?

  3. .so.2 ファイルとは何ですか?