From: SATOH Fumiyasu Date: 2007-10-14T00:50:39+09:00 Subject: [ruby-list:44114] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ さとうふみやす @ OSS テクノロジです。 At Sat, 13 Oct 2007 10:59:45 +0900, =?ISO-2022-JP?B?GyRCJC0kYCRpJDMkJiQkJEEbKEI=?= wrote: > > VALUEとかいろいろ必須なものがあるので、さすがにruby.hをincludeし > > ない人がいるとは思いもよりませんでした。というか、ruby.hを使わな > > いサンプルがどこかにあるのでしょうか。 > > ruby.hをincludeしていないようなサンプルですが、わたしは見たという記憶はないです。 > いずれにしろ、「include しとけ」と明記しておくことで今回のようなミスが減らせるのでは > ないかと思います。 「標準のヘッダーより先に include しとけ」のほうが安全かと。 Ruby/SMB がそうなってなくて、ハマりました。 社内 SVN のコミットログより引用: * ruby.h を最初にインクルードするよう修正。 Ruby では _FILE_OFFSET_BITS の定義を ruby.h 内でインクルード している config.h (ruby.h と同じディレクトリに存在) で定義している。 mkmf.rb で生成される Makefile には _FILE_OFFSET_BITS の定義は 含まれない。 このため、ruby.h より前に標準ヘッダーファイルをインクルードして しまうと、32bit 環境におけるラージファイルサポート (いわゆる LFS) が 有効にならない。結果、Ruby バイナリとモジュールのバイナリで size_t などのサイズが一致しなくなる。 -- -- Name: SATOH Fumiyasu / fumiyas @ osstech.co.jp -- Business Home: http://www.OSSTech.co.jp -- Personal Home: http://www.SFO.jp/blog/