web-dev-qa-db-ja.com

Ubuntuはライブラリファイルをどこに保存しますか?

Cコンパイルで使用する独自のライブラリを追加したいが、ubuntuがそれをどこに保存するのか実際にはわからない。

17
david25

あなたの質問に対するあなたのコメントに基づいて、私があなたが本当に求めているのは「私が書いたカスタムライブラリをどのようにインストールし、どこに置くべきですか?」であると思います。

一般に、ユーザーがマシン上で他のユーザーのためにローカルに構築されたものは、/ usr/localツリーに配置されます。ヘッダーファイルは/ usr/local/includeに移動する必要があります。コンパイルされたライブラリは/ usr/local/libに移動します。 .cファイルはライブラリの一部ではなく、ソースの一部であり、エンドユーザーが使用するために通常インストールされないものではありません。これらの場所のいずれかにファイルを配置するには、rootアクセスが必要になります。

ライブラリをビルドするには、最初にビルドする必要があります。静的または動的(共有)ライブラリのどちらを使用するかを決定します。共有ライブラリの作成の詳細については、セクション3.4、「 http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/sharedでの共有ライブラリの作成」を参照してください。 -libraries.html 。 (彼らはまた、物を置く場所についての推奨事項を持っています-ほとんどの開発者は意見を1つか3つ持っています:-))

11
jwernerny

ライブラリに応じて、ubuntuはそのライブラリを主に3つの場所に保存します

  1. / lib
  2. / usr/lib
  3. / usr/local/lib

以下はファイルシステム階層標準からのものです

/ lib

/ libディレクトリには、システムを起動し、ルートファイルシステムでコマンドを実行するために必要な共有ライブラリイメージが含まれています。/binおよび/ sbinのバイナリによって。

/ usr/lib

/ usr/libには、ユーザーまたはシェルスクリプトによって直接実行されることを意図していないオブジェクトファイル、ライブラリ、および内部バイナリが含まれます。 [22]

アプリケーションは、/ usr/libの下の単一のサブディレクトリを使用できます。アプリケーションがサブディレクトリを使用する場合、アプリケーションが排他的に使用するすべてのアーキテクチャ依存データは、そのサブディレクトリ内に配置する必要があります。

/ usr/local/libにはローカルライブラリ、つまりこのシステムに固有のライブラリが含まれていますが、FHSで/ usr/local/libへの参照が見つかりません。/usr/localの説明のみが含まれています。

11
binW

UbuntuはFilesystem Hierarchy Standard( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard )に従います。通常のアプリケーションライブラリは/ usr/libに保存する必要があります。

ライブラリの開発/管理は簡単なテーマではないことに注意してください。詳細なドキュメントを読む必要があります。ここにニースのチュートリアルがあります。 http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html =

2
João Pinto

ライブラリを見つけることができる場所をコンパイラに伝える必要があります。ライブラリへのパスが「/path/to/lib/libfoo.a」であると仮定すると、プログラム「hello.c」を次のようにコンパイルおよびリンクできます。

gcc -L/path/to/lib -lfoo hello.c

これはUbuntuに固有のものではありません。実際、私が知っているすべてのCコンパイラはこれらのフラグをサポートしています。

0
Frank