web-dev-qa-db-ja.com

新しいヘッダーファイルを全世界で利用可能にする方法

いくつかの新しいヘッダーファイルをダウンロードし、それらのフォルダーを使用可能にしたいだけです。まず、それらを使用したい任意のファイルで利用できるようにしたいと思います。そのため、たとえばmath.hのように、新しいヘッダーファイル(newheader.h)を必要な場所に含めることができます。どこに置けばいいですか?

第二に、これらのファイルをすべてのユーザーが利用できるようにします。ルート権限があります。配置する必要がある特別なディレクトリはありますか?本当にありがとう!

5
paulinho

/usr/local/includeに保存します。 http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html から、このディレクトリ内のアイテムは「...システムソフトウェアの更新時に上書きされないように安全です」 。これは、ダウンロードしたヘッダーファイルがシステムアップデートによって破壊されることを望まないため重要です。これは、/usr/includeに入れると発生する可能性があります。

10
dsstorefile1

MYシステムには、/usr/local/include/ディレクトリが存在し、空です。 Filsystem Hierarchy Standardでは、( FHS 3. )使用するディレクトリは/usr/local/includeであると書かれています。ファイルは誰でも読み取り可能(0444)であり、ディレクトリは検索可能(0555)である必要があります。

6
waltinator

問題は、何を達成したいですか?

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

  • 開発
  • ローカルインストール($HOME内)
  • グローバルインストール

最初の2つでは、おそらく-Iスイッチを使用してヘッダーへのパスを指定する必要があります。最初はおそらく-I../mylib/includeで、2番目は-I/home/user/local_libs/somelib/includeです。

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

Automakeを使用する場合、--prefixparameter がデフォルトで/usr/localであることに気付く場合があります。これは、システムパッケージに干渉しない安全なインストール、つまりdebianメンテナは./configure --prefix=/usrパッケージスクリプト内。インクルードパスはこのプレフィックスから構築されるため、パッケージのインストールに従います。

1
allo