人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

RubyでTmailをインストールしようとすると以下のエラーがでるのですが何故でしょうか?
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/tmail-1.1.1/ext/tmail/base64/ge
m_make.outのファイルは空でした。
Rubyのバージョンは1.8.5です。ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]


C:\Documents and Settings\garyo>gem install tmail
Building native extensions. This could take a while...
can't find header files for ruby.

ERROR: While executing gem ... (RuntimeError)
ERROR: Failed to build gem native extension.
Gem files will remain installed in C:/Ruby/lib/ruby/gems/1.8/gems/tmail-1.1.1 fo
r inspection.


Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/tmail-1.1.1/ext/tmail/base64/ge
m_make.out

●質問者: garyo
●カテゴリ:インターネット ウェブ制作
✍キーワード:2006 base64 Extensions GE gem
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kazutanaka
●60ポイント ベストアンサー

mswin32版ruby 1.8.5の、拡張子省略時の

バッククオート動作仕様が原因のようです。


拡張子を省略したbatコマンドが、

・パス内にあれば、batを補ってくれる

・カレントディレクトリなら、batを補わない


tmail gemは、拡張ライブラリのダミービルド用に

何もしないmake.batを作成します。

しかし、ruby1.8.5で(`make`)としても、

このmake.batが見つけられないため、

何も出力せずに終了してしまい、

ログも空のままになります。


次のいずれかで解消できると思います。


・ruby 1.8.6に移行する

・カレント('.')をPATHに追加する

・make環境変数で強制的にmake.batを指定する


3番目なら、次にようにします。

>set make=make.bat

>gem install tmail


以下のページによるとwin版のtmail gemは、

ダミーのmake.batを作成して拡張ライブラリを

ビルドしないのが意図した動作のようです。


http://tmail.rubyforge.org/quickstart/index.html

◎質問者からの返答

ありがとうございますm(__)m。

そうだったんですね。

試してみましたが、やはりエラーになりました。

C:\project\ruby>set make=make.bat

C:\project\ruby>gem install tmail

Updating metadata for 20 gems from http://gems.rubyforge.org

....................

complete

Building native extensions. This could take a while...

ERROR: Error installing tmail:

ERROR: Failed to build gem native extension.

C:/ruby-1.8/bin/ruby.exe extconf.rb install tmail

can't find header files for ruby.


Gem files will remain installed in C:/ruby-1.8/lib/ruby/gems/1.8/gems/tmail-1.1.

1 for inspection.

Results logged to C:/ruby-1.8/lib/ruby/gems/1.8/gems/tmail-1.1.1/ext/tmail/base6

4/gem_make.out

C:\project\ruby>

【gem_make.out】の中身

C:/ruby-1.8/bin/ruby.exe extconf.rb install tmail

can't find header files for ruby.

--------------------------------------------------------------------

原因が理解できました。

1.ActiveScriptRubyの標準インストール

2.VisualC++などのコンパイラがインストールされている

この場合に発生するわけですね。

VC++などのコンパイラが無ければ、make.batなどダミーでextを無効化するのですが

VC++が入っているとextをコンパイルしようとします。

しかしActiveScriptRubyの標準インストールではヘッダーが入らないのでRuby.hが無くてエラーになります。

対策としては 以下のASRDev18.msiをインストールして「gem install tmail」を実行すると問題なく入ります。

http://arton.hp.infoseek.co.jp/ASRDev18.msi

色々詳しく説明頂きありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ