Feature #4165
closedwin32ビルドでbaserubyを設定しなかったときのエラーが非常に不親切
Description
=begin
artonさんが素晴らしい本を書いてくださったのでWindowsのビルド環境構築してみたのですが
(みなさん、「Ruby環境構築講座Windows編」を是非買いましょう。これは素晴らしい本です。
http://tatsu-zine.com/books/winrubybuild)
Windowsビルドに関して、一点改善して欲しい点があるのでチケットを切ります。trunkのソースを
ビルドする場合 baserubyの指定が必要ですが、私は粗忽者なのでしばしば忘れます。そしてこの
時のエラーメッセージが非常に不親切です。具体的には以下のように出ます。
C:\ruby>nmake
Microsoft(R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
CFLAGS = -MD -Zi -W2 -wd4996 -we4028 -we4142 -O2sy- -Zm600
XCFLAGS = -DRUBY_EXPORT -I. -I.ext/include/i386-mswin32_100 -I./include
-I. -I./missing
CPPFLAGS =
DLDFLAGS = -incremental:no -debug -opt:ref -opt:icf -dll
SOLIBS =
generating miniprelude.c
'-I.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
NMAKE : fatal error U1077: '-I.' : リターン コード '0x1'
Stop.
直接の原因は、以下の行で $(BASERUBY)が空文字列になってしまうのが原因なのですが、
このエラーメッセージからそれを読み取るには高度なエスパー能力が必要です。
common.mk¶
miniprelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb
$(ECHO) generating $@
$(Q) $(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@
添付のパッチのようにconfigure.batでチェックしてもらえるとうれしいのですが、usaさんどうでしょうか?
=end
Files
Updated by usa (Usaku NAKAMURA) almost 14 years ago
=begin
こんにちは、なかむら(う)です。
In message "[ruby-dev:42782] [Ruby 1.9-Feature#4165][Open] win32ビルドでbaserubyを設定しなかったときのエラーが非常に不親切"
on Dec.17,2010 04:31:18, redmine@ruby-lang.org wrote:
Windowsビルドに関して、一点改善して欲しい点があるのでチケットを切ります。trunkのソースを
ビルドする場合 baserubyの指定が必要ですが、私は粗忽者なのでしばしば忘れます。そしてこの
時のエラーメッセージが非常に不親切です。具体的には以下のように出ます。
えーと、--with-baserubyがない場合、ruby.exeをPATH内から探して
それをBASERUBYに自動でぶちこむ仕組みが既にあります。setup.mak
参照。
なので、--with-baserubyの指定は必須じゃないんですよね。
(ちなみに私は普段指定していません)
あと、リポジトリから抜いてきたのではないRubyソース配布物の場
合は、rubyのビルドにruby実行体自体が不要であるということもあ
ります。
直接の原因は、以下の行で $(BASERUBY)が空文字列になってしまうのが原因なのですが、
このエラーメッセージからそれを読み取るには高度なエスパー能力が必要です。
いやまったく。
しかし、小崎さんレベルだとちゃんとこの程度の障害なら突破して
くるということが証明されてしまったので、「ただの開発志願者に
は興味ありません。この中に天才、タイムマシン保持者、パッチモ
ンスター、エスパーがいたら、あたしのところに来なさい。以上。」
という募集のためにはちょうどいいリトマス試験紙なので
はないか、とか思ったりしました。
添付のパッチのようにconfigure.batでチェックしてもらえるとうれしいのですが、usaさんどうでしょうか?
このパッチでは前述のケースが考慮されていないと思うので、残念
ですが却下です。
どっちかというと、BASERUBY空じゃねーのチェックを行うルールを
用意して、BASERUBYを使う全てのルールをそれに依存させるのがい
いのではないかと思うのですが、どうでしょう?
またはそのチェックをBASERUBY自体に仕込んで毎回チェックさせる
とかいうのも思い浮かびます。
と、このくらい書いておけば、天才兼タイムマシン保持者兼パッチ
モンスターあたりがなんとかしてくれるような気がするけど、どう
ですかね?>該当者
エスパーと呼ばれたこともあるのかな。ありそうだな。¶
それでは。¶
U.Nakamura usa@garbagecollect.jp
=end
Updated by usa (Usaku NAKAMURA) almost 14 years ago
=begin
こんにちは、なかむら(う)です。
In message "[ruby-dev:42783] Re: [Ruby 1.9-Feature#4165][Open] win32ビルドでbaserubyを設定しなかったときのエラーが非常に不親切"
on Dec.17,2010 11:37:13, usa@garbagecollect.jp wrote:
またはそのチェックをBASERUBY自体に仕込んで毎回チェックさせる
とかいうのも思い浮かびます。
configure.inの方はこれをやっていたので、合わせました。
なかださんは名指ししたのに ^& を使う技を教えてくれただけでし
た。ちっ
それでは。¶
U.Nakamura usa@garbagecollect.jp
=end
Updated by usa (Usaku NAKAMURA) almost 14 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
This issue was solved with changeset r30236.
Motohiro, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
=end