From: Akinori MUSHA Date: 2012-11-07T10:09:03+09:00 Subject: [ruby-dev:46435] Re: 「意図したほうをincludeしてほしい」問題 --pgp-sign-Multipart_Wed_Nov__7_10:09:02_2012-1 Content-Type: text/plain; charset=ISO-2022-JP At Wed, 7 Nov 2012 02:15:08 +0900, KOSAKI Motohiro wrote: > >> # -I/usr/local/include は他のライブラリのために要るので、 > >> # "" で囲んでもあまり意味がなく > >> > >> 「同名のヘッダファイル」問題のベストプラクティス、って無いもので > >> しょうかねぇ? > > > >  よく知られたヘッダファイルと同じ名前のものは作らず、必要なら階層化す > > べし、というところですかねえ。 > > > >  gcc には #include "..." にだけ作用する -iquote dir というオプションが > > あり、これが正にずばりなのですが、 追随しているのは clang くらいかもし > > れません。 > > そもそも atomic.h は公開したくないからinclude/rubyではない場所においてあるのに > なぜ /usr/local/include に入ってしまったのでしょう > Makefileがバグってる?へんなディストリつかってる? #include "atomic.h" で読まれるその $(srcdir)/atomic.h が Solaris では /usr/include/atomic.h を必要とするので中で #include としてい たのだけど、 <> で括っても -I$(srcdir) が指定されているとシステムディレ クトリでなくそちらを優先してしまうので、実質的に "" も <> も違いがなく、 システムにある同名ヘッダは隠されてインクルードできないという話だと思い ます。 と書いたところで次のメールに気が付きましたが記録のために投げておきます。 -- Akinori MUSHA / http://akinori.org/ --pgp-sign-Multipart_Wed_Nov__7_10:09:02_2012-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEABECAAYFAlCZtK4ACgkQkgvvx5/Z4e55CgCfbfldpOk32tnzr7RiaOxCvNMN APsAn3omdjTISTYXehsd5mpjsbce3KgJ =T5VR -----END PGP SIGNATURE----- --pgp-sign-Multipart_Wed_Nov__7_10:09:02_2012-1--