- 2007/09/10 Mon
-
なぜなぜQ&Q!(懐かしすぎる)
Q:カレント以外に置いてあるファイルをカレント内の同名ファイルより優先的にインクルードするには?
Q:そもそも、なんでそんな配置なの?コンパイル前後でリネームするとか。
gccなら-I-、Visual C++なら/Xで検索パスをどうにかするとか。
ただし、/Xは-I-と違って全てのパスが消えるので、$(VCInstallDir)\includeとかの追加が必要になって鬱陶しい。http://www.linux.or.jp/JM/html/GNU_gcc/man1/gcc.1.htmlこれに加えて `-I-' オプションは、カレントディレクトリ (現在の入力ファイルが存在するディレクトリ) が `#include "file"' に対する最初の検索対象となることを抑制します。`-I-' によるこの効果を上書きする方法はありません。`-I.' を指定することによって、コンパイラが起動されたディレクトリが検索されることを指定することは可能です。これはプリプロセッサが行なうデフォルトの動作とは異なりますが、たいていはこれで十分です。http://msdn2.microsoft.com/ja-jp/library/93t31bx4(VS.80).aspx環境変数 PATH と INCLUDE で指定されたディレクトリ内でインクルード ファイルが検索されなくなります。