/ my / path / to/fileフォルダーにヘッダーファイルがほとんどありません。これらのファイルを新しいCプログラムにインクルードする方法は知っていますが、インクルードする前にヘッダーファイルへのフルパスを入力する必要があるたびに。Linuxでパス変数を設定して、ヘッダーファイルを自動的に検索することはできますか?
3 に答える
メイクファイルを作成できます。最小限の例は次のとおりです。
INC_PATH=/my/path/to/file
CFLAGS=-I$(INC_PATH)
all:
gcc $(CFLAGS) -o prog src1.c src2.c
ここから、さまざまな方法でこの makefile を改善できます。おそらく最も重要なのは、コンパイルの依存関係を示すことです (したがって、変更されたファイルのみが再コンパイルされます)。
参考までに、ここにGNU make documentationへのリンクがあります。
makefile を使用したくない場合は、いつでも環境変数を設定して、コンパイル コマンドを入力しやすくすることができます。
export MY_INC_PATH=/my/path/to/file
次に、次のようにプログラムをコンパイルできます。
gcc -I${MY_INC_PATH} -o prog src1.c src2.c ...
MY_INC_PATH
file.bashrc
で変数を定義するか、変数定義を含む便利な場所にファイルを作成することをお勧めします。source
次に、現在のシェルでその変数を設定するために使用できます。
source env.sh
ただし、メイクファイルを使用する方がはるかに好ましい方法だと思います。
同様の質問があり、おそらくより適切に解決されます(永続的な解決策に興味がある場合):https://stackoverflow.com/a/558819/1408096
C_INCLUDE_PATH (C ヘッダー ファイルの場合) またはCPLUS_INCLUDE_PATH (C++ ヘッダー ファイルの場合)を設定してみてください。
称賛:jcrossley3
私は今 Linux を使っていないので、すべてが正しいかどうかを確認するために再起動するのは面倒ですが、シンボリック リンクを作成してみましたか? たとえば、Ubuntu を使用している場合:
$ cd /usr/include
$ sudo ln -s /my/path/to/file mystuff
したがって、stufを含めたい場合は、次を使用できます。
#include <mystuff/SpamFlavours.h>