、ありがとうございました。 はとなります。プリプロセッサーの位置は通常-I
ですが、便宜上、システムにはデフォルトで検索する一連のディレクトリがあります。これは「インクルードパス」と呼ばれます。 /usr/include
,/usr/local/include
などの場所が典型的である。
ライブラリをインストールすることは、通常、インクルードパスに入れることを意味します。 sndfile.hはおそらく/usr/local/include/sndfile.h
に入ります。
ライブラリのコードは少し異なります。インストールプロセスは、コードをすべてのプロセスが使用できるshared libraryにコンパイルします。共有ライブラリを使用することで、すべてのプログラムにコンパイルするのではなく、コードサイズとメモリ使用量がシステム全体で減少します。ヘッダーファイルと同様に、共有ライブラリはライブラリパスにあります。 /usr/lib
および/usr/local/lib
が一般的な例です。
共有ライブラリには、アップグレードされているすべてのプログラムもアップグレードされるという利点があります。これは、バグの修正やセキュリティホールの埋め込みに非常に適しています。欠点は、共有ライブラリがバグやセキュリティホールを導入したり、インタフェースを変更した場合、それを使っているすべてのプログラムに影響を与えます。
インストールプロセスは、プロジェクトのソースのREADME
またはINSTALL
ファイルに記載しなければなりません。通常は...
./configure
make
make check
make install
通常、これはパッケージマネージャーでより安全に簡単に実行できます。例えば、Debian has a libsndfile packageはUbuntuと同じです。そうすれば、最新の状態に保たれます。
別のライブラリに依存するプログラムを配布する場合は、3つの選択肢があります。
まず、ユーザーが手動でそのライブラリをインストールするようにします。これはほとんどのユーザーにとって痛みです。
次にパッケージシステムlike that which comes with Ubuntuを使用してソフトウェアをパッケージにします。次に、ライブラリのパッケージに依存関係を宣言することができます。これは良いですが、すべての主要な配布用にパッケージを作る必要があります。
ソースコードと共にライブラリを配布することができます。ソースコードがビルドされたら、ライブラリもビルドします。プログラムをバイナリとして配布する場合は、コンパイルされたライブラリも配布することができます。これは最近、コンパイルされたコードで充実したディレクトリと必要なサポートライブラリとフレームワークのアプリケーションがたくさんあります。例はthe OS X .app bundleです。
ライブラリをインストールすると、関連するファイルをさまざまな場所に配置するだけで、コンパイラ/リンカがそれらを見つけることができます。これには、ライブラリに必要な他のファイルも含まれます。例えば、設定ファイルは –
@EdHealです。詳しい情報を提供できますか?私はそれをより低いレベルで理解したいと思います。 – Izzo
さらに詳しい情報が必要ですか?可能性として、あなたの設定に固有のいくつかのファイルを作成する可能性があります。その後、ファイルを関連する場所にコピーし、さまざまなファイルのアクセス許可を設定します。インストーラは他のことをすることができますが、通常は合計で –