皆様 かなり初歩的な質問かもしれませんが、お答えください。
現在、C言語であるプログラムを作っています。 そのプログラムに必要なヘッダー(hoge.h) をincludeするためにプログラム内で #include<hoge.h> としてコンパイルしたら「そんなもの存在しない」とコンパイラに怒られました。 このファイルの所在を調べたら/usr/local/includeにあることがわかりましたので、 -I/usr/local/include と明示的にありかを示すオプションに付けてコンパイルしたら 問題なくコンパイルできました。 同様に、上記の本体(?)であるライブラリーは/usr/loca/lib/にあり、コンパイルオプ ションとして明示的に-L/usr/local/libを設定しない限り、実行ファイルを構成できま せんでした。 つまり、/usr/local/以下のincludeとlibを使う場合にはコンパイラに明示的にオプション として渡す必要があるというのが結論なのですが、これはデフォルト状態なのでしょうか? #いままで、このように明示した記憶がないので、これがデフォルトなのか迷っています。 なお、OSはFreeBSD 7.2-RELEASE-p4 #3: Wed Nov 11 20:46:56 JST 2009で コンパイラーは >gcc -v Using built-in specs. Target: i386-undermydesk-freebsd Configured with: FreeBSD/i386 system compiler Thread model: posix gcc version 4.2.1 20070719 [FreeBSD] です。 この反応が正常ならMakefileに追加するだけで良いのですが、なぜこうなっているのか微妙に 釈然としていません。 年末でお忙しいと思いますが、お教えいただければ幸いです。 岡村@山梨県