[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00340] Re: patch: HAVE_MKDIR
- To: freewnn@tomo.tomo.gr.jp
- Subject: [freewnn:00340] Re: patch: HAVE_MKDIR
- From: Tatsuo Furukawa <frkwtto@XXXX>
- Date: Fri, 18 Feb 2000 01:36:08 +0900
- In-Reply-To: <86k8l1yz5v.fsf_-_@fenrir.itl.co.jp> (sin@itl.co.jp)
- Reply-To: freewnn@tomo.gr.jp
古川竜雄です。
元木さん> 現状の configure は -DHAVE_CONFIG_H を付けてくれないのでイ
元木さん> イカゲンな方法で config.h のインクルードをしていますがご容
元木さん> 赦を :-(
すいませんでした。@DEFS@ を CFLAGS に反映させる必要があるみたいですね。
元木さん> また、de.c #include <config.h> は #include "config.h" でな
元木さん> いでしょうか? #include <config.h> としている理由があるのな
元木さん> らば教えて下さい。
#include <〜> と "〜" の違いは以下の通りで、
#include <〜> -I で指定されたディレクトリ、デフォルトインク
ルードパスを検索。
#include "〜" まず、カレントディレクトリを検索、その後は
#include <〜> と同じ
<config.h> は必ずトップディレクトリのものをインクルードしなければなり
ません。そのため、コンパイルする時に -I オプションでトップディレクトリ
を指定しています。(本来、これは相対パスになるのですが、手抜きで絶対パ
スになっています)。もし、#include "config.h" だと、たまたまカレントディ
レクトリに config.h が存在した場合そちらが読み込まれてしまいます(こん
なことは滅多に起こらないと思いますが…)。そういったトラブルを避けるた
めに #include <config.h> を使います。カレントディレクトリのファイルは
無視するので、指定したインクルードパスから読み込まれることが保証されま
す。
では #include "〜" はどういう時に使うかというと、「カレントディレクト
リのヘッダファイルを読み込みたい」ときです。-I. とオプションを指定する
と #include <〜> でも同じ効果が出ますが、それでは前述の <〜> ならでは
の特徴が生かせません。-I. は指定せず、<〜> と "〜" を使い分けるのが良
い方法です。
…というのが、私が昔教わった <〜> と "〜" の使いわけの方法です。
もっともらしい理由がついていますが、実用上はほとんど問題にならないもの
ですので、#include "config.h" の方が一般的でしたらそのように直します。:-)
元木さん> ついでに HAVE_RAND_MAX を使っているのはなぜなのでしょうか?
これは完全に私のミスです。ややこしいことヤリスギでした。
元木さん> config.h.in : autoheader で作成したもの。
元木さん> acconfig.h : autoheader で追加されないもの。
元木さん> こっちの方が config.h.in への追加ミスなどがなくて良いのでは
元木さん> ないでしょうか?
このやりかたが本来のものみたいですね。実は見よう見まねで configure の
部分をさわったのでボロが出まくってます。autoconf のマニュアルをもう一
度読み直さねば…
--
古川竜雄 (frkwtto@osk3.3web.ne.jp) / FreeWnn Project