新しいヘッダー ファイルを普遍的に利用できるようにするにはどうすればよいでしょうか?

新しいヘッダー ファイルを普遍的に利用できるようにするにはどうすればよいでしょうか?

新しいヘッダー ファイルをいくつかダウンロードしたので、それらのフォルダーを用意して、それを利用できるようにしたいと考えています。まず、それらを使用したいすべてのファイルで利用できるようにしたいと思います。そのため、新しいヘッダー ファイル (newheader.h と呼びます) を、たとえば math.h のように、必要な場所にインクルードできるようにしたいと思います。どこに配置すればよいでしょうか。

次に、これらのファイルをすべてのユーザーが利用できるようにしたいと考えています。私はルート権限を持っています。特別なディレクトリに置く必要がありますか? どうもありがとうございます!

答え1

に保管してください/usr/local/includehttp://tldp.org/LDP/Linux-ファイルシステム階層/html/usr.html、このディレクトリ内の項目は「システム ソフトウェアが更新されても上書きされない」ため、ダウンロードしたヘッダー ファイルを に配置するとシステム更新によって上書きされる可能性があるため、これは重要です/usr/include

答え2

私のシステムでは、/usr/local/include/ディレクトリは存在し、空です。ファイルシステム階層標準では、(3.0 の) 使用するディレクトリは です/usr/local/include。ファイルは誰でも読み取り可能 ( 0444) で、ディレクトリは検索可能 ( 0555) である必要があります。

答え3

問題は、何を達成したいかということです。

通常、次の 3 つのシナリオがあります。

  • 発達
  • ローカルインストール($HOME
  • グローバルインストール

最初の 2 つについては、-Iスイッチを使用してヘッダーへのパスを指定する必要があります。最初のものは になる可能性があり-I../mylib/include、2 番目は になる可能性があります-I/home/user/local_libs/somelib/include

3 番目はグローバル インストールで、 に配置します/usr/local/includeが、automake や cmake などのツールによって管理されます。パッケージ化する場合、メンテナーはインストール パスやインクルード パスを調整して、ヘッダーを にインストールする必要があります/usr/include

automakeを使用すると、--prefix パラメータ/usr/localデフォルトでは、システム パッケージに干渉しない安全なインストールが に設定されていますが、たとえば Debian のメンテナーはパッケージ スクリプトを実行します 。./configure --prefix=/usrインクルード パスはこのプレフィックスから構築されるため、パッケージのインストールに従います。

関連情報