From: "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> Date: 2012-11-06T17:28:27+09:00 Subject: [ruby-dev:46420] 「意図したほうをincludeしてほしい」問題 きしもとです > #include "atomic.h" とは違って #include <atomic.h> のように<>で囲んでいるので、システムのヘッダファイルが優先されるはず、と思っていたら、実はそうではなく、configureがコンパイル時のオプションとして "-I." を追加しているため、Rubyソース側の atomic.h しか読み込むことができず、どう頑張ってもシステムの /usr/include/atomic.h は読み込まれないことが判明しました。 rubyでは、はまったことはないのですが、逆のパターンで、 base64.h (heimdal) とか、gc.h (Boehm GC) とかで、アプリ側の ヘッダファイルをインクルードしてほしいのに、/usr/local/include に ある、システム(ライブラリのパッケージ)の側のヘッダファイルが インクルードされてしまい、トラブる、というパターンに不定期に 見舞われています。 # -I/usr/local/include は他のライブラリのために要るので、 # "" で囲んでもあまり意味がなく 「同名のヘッダファイル」問題のベストプラクティス、って無いもので しょうかねぇ?