よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

November 17, 2004 [おもひで]

[Ruby] 続々 ruby-1.8.2-preview3コンパイル

もう一度tar玉を新しく展開してからやり直してみた。

若干昨日とはやり方を変えてみた(ってか昨日の忘れてるし(^^;)。

> cd ruby-1.8.2
> set RUBYOPT=
> "C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat"
> "C:\Program Files\Microsoft SDK\SetEnv.Bat"
> win32\configure.bat
> nmake
 
(コンパイルはうまくいく)
 
        lib -nologo -machine:x86 -out:msvcrt-ruby18-static.lib array.obj  bignum
.obj  class.obj  compar.obj  dir.obj  dln.obj  enum.obj  error.obj  eval.obj  fi
le.obj  gc.obj  hash.obj  inits.obj  io.obj  marshal.obj  math.obj  numeric.obj
 object.obj  pack.obj  parse.obj  prec.obj  process.obj  random.obj  range.obj
re.obj  regex.obj  ruby.obj  signal.obj  sprintf.obj  st.obj  string.obj  struct
.obj  time.obj  util.obj  variable.obj  version.obj  acosh.obj crypt.obj erf.obj
 win32.obj dmyext.obj
'lib' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'lib' : リターン コード '0x1'
Stop.

ここでlibが無いと言われてしまうのだけど、オレの環境ではlib.exeがC:\Program Files\Microsoft SDK\Bin\Win64\lib.exeしかみつからない。Win64というのが怪しい(オレのマシンはPentium IIIのWindows2000)けど、とりあえず、PATHにこのフォルダを追加して続けてみる。

> set PATH=%PATH%;"C:\Program Files\Microsoft SDK\Bin\Win64"
> nmake
        .\miniruby.exe ./win32/mkexports.rb -output=msvcrt-ruby18.def msvcrt-rub
y18-static.lib
./win32/mkexports.rb:6:in `foreach': No such file or directory - dumpbin -symbol
s msvcrt-ruby18-static.lib (Errno::ENOENT)
        from ./win32/mkexports.rb:6
NMAKE : fatal error U1077: '.\miniruby.exe' : リターン コード '0x1'
Stop.

で、昨日の事象が再現。

ってことはやっぱりlib.exeのところが変なのかなー。それともオレの環境がダメダメ?...その可能性はかなり高いな(^^;)。

[Ruby-GNOME2] ruby-gtk2-0.11.0 for One Click Ruby Installer

One Click Installer上で動作するruby-gtk2のバイナリを用意しました。

Ruby/GLib, Ruby/ATK, Ruby/Pango, Ruby/GdkPixbuf, Ruby/GTK, Ruby/GtkGLExt, Ruby/Libglade, Ruby-GetText-Package, Raccが入っています。ぜひお試しください。

最近、One Click InstallerでインストールしたRuby上でMinGWでコンパイルしたruby-gtk2が動作しないと言う現象が起きていました。

で、今回、VCでコンパイルをし直したところ動作するようになった、というものです。

#いいのかな、こんなんで(^^;)。

それにしてもVCでコンパイルできるようにするまでかなり大変でした。

結局、Ruby自体のコンパイルはあきらめたのですが(^^;)、ソースに手を入れたりMakefileに手を入れたり環境変数設定したり... 逆に、その辺をしっかりしておけばMinGWでコンパイルしても大丈夫なのかもしれません。型のチェックなんかはVCの方が厳しいみたいですし。

#もちろん、もっと簡単な方法があるのかもしれませんがなにぶんWindowsの開発環境には疎いもので(^^;)。

もう少し簡単にできるようにしないと次が大変だ。うーん。

本日のツッコミ(全5件) [ツッコミを入れる]
なかだ (November 18, 2004 02:15)

One Click Installerのはmsvcrt7.dllにリンクされているらしいですが、
mingwでコンパイルしたものは何にリンクされているでしょうか。
聞いたところでは、最近のmingwもlibmsvcrt7.dll.aはあるらしいということですが。

(う) (November 18, 2004 09:35)

Win64フォルダの中身は、Win64用なので...
link.exeなども怪しかったりしますかひょっとして?

なかださんのツッコミ内容についての詳細はebanさんの日記参照。

むとぽん (November 18, 2004 11:03)

(う)さん>
やっぱりWin64用ですよね...。
普通lib.exeってどこにあるんでしょうか?

link.exeはcl.exeと同じフォルダにあるので大丈夫じゃないかなぁと思ってはいるのですが...。

ebanさんの記事って以下のURLですね。勉強になります。

http://jarp.jin.gr.jp/diary/200411b.html#200411171

なかださん>
ebanさんのところと同じようにgtk2.soをobjdumpしてみますとやはりmsvcrt.dllにリンクしているようです。
一方、VCでコンパイルしたgtk2.soを見るとMSVCR71.dllにリンクされています。

(う) (November 18, 2004 12:02)

lib.exeはcl.exeやlink.exeと同じところに...
Platform SDKのおまけでついてくるのは、非Platform SDK環境(つまり正規のVisual Studio)に含まれてない分を補完するために入ってるはずです。
ということは、やっぱり正規版じゃないとダメってことですかねえ。うーん。

むとぽん (November 19, 2004 00:54)

あぁ、そういうことなのかもしれませんねぇ。
それだとあまりうれしくないなぁ、がっくし。


編集