[#28446] named capture and /g, /G option — "K.Kosako" <sndgk393@...>

Ruby 1.9に、

30 messages 2006/03/21
[#28449] Re: named capture and /g, /G option — "K.Kosako" <sndgk393@...> 2006/03/21

> Ruby 1.9に、

[#28452] Re: named capture and /g, /G option — Yukihiro Matsumoto <matz@...> 2006/03/21

まつもと ゆきひろです

[#28453] Re: named capture and /g, /G option — "K.Kosako" <sndgk393@...> 2006/03/21

Yukihiro Matsumoto wrote:

[ruby-dev:28425] -MT付きでのコンパイルについて on Win32 VC7

From: TOBY <toby@...>
Date: 2006-03-09 18:02:50 UTC
List: ruby-dev #28425
TOBYと申します。

ruby-listの方で話が始まり、そこで聞こうと思いましたが、
ruby-devの方が適切だと考え、こちらに投稿させていただきます。

WindowsXP SP2 の Visual C++ Toolkit2003(VC7) 上での話です。

デフォルトでは、VC7でコンパイルすると、CFLAGSに-MDが含まれるため、
msvcr71.dll 依存になってしまいます。
そこで、dll依存にならないように、-MTでコンパイルしてみました。
無事コンパイルでき、msvcr71.dll非依存になったのですが、
どうも動作が変なようです。
nmake test は test succeeded で、無事に通っています。

具体的には、

require 'open-uri'
open("http://internet.kill.jp/int.rdf") do |u|
  print u.read
end

といったコードで、

T:\home\program\Language\ruby\myruby>..\ruby-1.8.4\ruby\bin\ruby hoge.rb
T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/net/http.rb:562:in `i
nitialize': Bad file descriptor - connect(2) (Errno::EBADF)
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/net/http
.rb:562:in `connect'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/timeout.
rb:48:in `timeout'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/timeout.
rb:76:in `timeout'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/net/http
.rb:562:in `connect'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/net/http
.rb:555:in `do_start'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/net/http
.rb:544:in `start'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:245:in `open_http'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:629:in `buffer_open'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:167:in `open_loop'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:165:in `open_loop'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:135:in `open_uri'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:531:in `open'
        from T:/home/program/Language/ruby/ruby-1.8.4/ruby/lib/ruby/1.8/open-uri
.rb:86:in `open'
        from hoge.rb:2

といったような、エラーが起きてしまいます。
-MDでコンパイルした場合では、起きません。
他のコードはまだ試していません。
これはどういった現象でしょうか。
# -MTは推奨されないのでしょうか?

ruby-listの方では、
> > #CFLAGSとLDFLAGSいぢればスタティックライブラリをリンクできる?
> 
> スタティックリンクするとメモリマネージャの不一致でこけます。
と言われていましたが、これかどうかは、自分には判断つきませんでした。

--
TOBY
E-MAIL: toby@tobysoft.net
URL: http://tobysoft.net/

In This Thread

Prev Next