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 は他のライブラリのために要るので、
# "" で囲んでもあまり意味がなく

「同名のヘッダファイル」問題のベストプラクティス、って無いもので
しょうかねぇ?