丁稚な日々

Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...

[直前] [最新] [直後] [Top]

Jun.15,2010 (Tue)

Revision: 1.2 (Jun.15,2010 13:20)

[mswin32] インクルードパスの順序

_ Matzにっきが久し振りに更新されたからこっちも更新しよう。いや偶然だけど。

_ さて。C言語規格では-Iオプションなんて規定されてないし#include "..."#include <...>の違いも規定されてない(処理系定義)だが、SUSにはc99(古ければc89)コマンドの説明としてそれが書かれている!

_ 知らなかったよ、えぐえぐ。

_ で、えーと、SUSでは、-Iで前に置かれたものが優先だそうですこんちくしょう。

_ それはまあいいんだが、問題はVisual C++。
#include "..."の場合、

  1. ソースと同じディレクトリ。
  2. 既にインクルード済みのファイルと同じディレクトリ。複数あれば後からインクルードされた場所が優先。
  3. -Iで指定されたディレクトリ。指定された順(=前が優先)。
  4. 環境変数INCLUDEで指定されたディレクトリ。なお順序は規定がない(たぶん前が優先だと思うが)。

と、ドキュメントには書いてある。
2つ目がなんだか恐ろしいね!

_ でも、VC++2010(VC10)だとなんかドキュメントに書いてあるのと順序が違う気がするんですけどどうなってんすかMicrosoftさん。
ソースと同じディレクトリが最優先になってないように見えるよ?

_ と、いうようなことを、今頃発見しました。ごめんなさいごめんなさい。
いや謝るべきなのはMicrosoftさんだけど。


被捕捉アンテナ類
[Ant] [Antenna-Julia] [Rabbit's Antenna] [Ruby hotlinks]