[#25279] mkmf - DESTDIR is ignored — dellin <dellin_geo@...>

こんxxは。dellinです。

14 messages 2000/10/02

[#25311] =begin, =end — m_seki@...

27 messages 2000/10/04
[#25315] Re: =begin, =end — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/10/05

なひです.

[#25317] Re: =begin, =end — rubikitch <rubikitch@...> 2000/10/05

From: "NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp>

[#25319] Re: =begin, =end — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/10/05

なひです.

[#25321] Re: =begin, =end — rubikitch <rubikitch@...> 2000/10/05

From: "NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp>

[#25341] Re: =begin, =end — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/10/06

なひです.こちらはRDの話.

[#25417] Re: mswin32 組み込み用 Ruby — toyofuku@...

豊福です。遅い反応でごめんなさい。

19 messages 2000/10/10
[#25423] Re: mswin32 組み込み用 Ruby — nobu.nakada@... 2000/10/10

なかだです。

[#25471] Re: mswin32 組み込み用 Ruby — toyofuku@... 2000/10/16

豊福です。

[#25474] 始めまして — matsue <mattue@...>

松江と言います。お初になります。

15 messages 2000/10/16

[#25505] media watch 2000.10.18 — Noritsugu Nakamura <nnakamur@...>

26 messages 2000/10/18
[#25522] Re: media watch 2000.10.18 — Noritsugu Nakamura <nnakamur@...> 2000/10/19

[#25540] Re: media watch 2000.10.18 — Shin-ichiro HARA <sinara@...> 2000/10/20

原です。

[#25567] Ruby で遅い処理は? — Yasuki <yasuki@...>

Yasukiです.

16 messages 2000/10/22

[#25599] 原先生の本 — WATANABE Tetsuya <tetsu@...>

渡辺哲也です。

44 messages 2000/10/25
[#25611] Re: 原先生の本 — Shin-ichiro Hara <sinara@...> 2000/10/26

原です。

[#25733] Re: 原先生の本 — keiju@... (石塚圭樹) 2000/11/01

けいじゅ@日本ラショナルソフトウェアです.

[#25738] Re: 原先生の本 — Shin-ichiro HARA <sinara@...> 2000/11/01

原です。

[#25628] RWiki 1.0 and てんこもりぱっく — Masatoshi SEKI <m_seki@...>

14 messages 2000/10/26

[#25633] ping.rb の使い方 — goto@...

お世話になります。後藤です。

20 messages 2000/10/27

[#25674] EOF before end of embedded document — YANAGAWA Kazuhisa <kjana@...>

>od -c foo

15 messages 2000/10/28
[#25678] Re: EOF before end of embedded document — matz@... (Yukihiro Matsumoto) 2000/10/28

まつもと ゆきひろです

[ruby-list:25622] require で so をロードするときの環境変数について

From: Kengo Nakajima <ringo@...>
Date: 2000-10-26 11:50:45 UTC
List: ruby-list #25622
中嶋と申します。

 .so ファイルを require するときの検索について質問させて下さい(linuxで)。

ruby では、 .so ファイルをrequire するときは、 dlopen を使っていますが、
dlopenは環境変数 LD_LIBRARY_PATH に設定されているパスをもとに検索を
します。なので、require する前に、環境変数をいじって

ENV["LD_LIBRARY_PATH"] = "/home/ringo/some/lib"
require "hogehoge.so"

のようにすれば、正しくロードされるかと思いきや、hogehoge.so は
ロードされません。しかし、rubyを起動する前に、シェルから

csh % setenv LD_LIBRARY_PATH /home/ringo/some/lib
csh % ruby foo.rb

という風にすると、ちゃんとロードされます。

ruby のENVにおける "[]=" メソッドは、 setenv ライブラリ関数を呼び出す
ようになっているので、このことから予想されるのは、
setenv関数が、dlopen の認識できない領域を変更しているという事です。
これを検証しようとして、以下のようなC言語のプログラムを書いてみました。

#include <dlfcn.h>
int main(){
  void *h1, *h2;
  h1 = dlopen( "hogehoge.so" , RTLD_LAZY );
  setenv( "LD_LIBRARY_PATH", "/home/ringo/some/lib" );
  h2 = dlopen( "hogehoge.so" , RTLD_LAZY );
}
この実行結果は、 h1, h2 ともにNULLとなります。しかし、実行前に
シェルからLD_LIBRARY_PATH を設定すると、h1,h2ともに意味のある値を
返します。

 なぜこうなってしまうのか、わけがわからないのです。
教えていただければうれしいです。
最終的には、rubyのスクリプトの中でrequire する前に、
何とかして環境変数を指定してrequireが成功するようにしたいです。

では、よろしくおねがいします。

--------
中嶋謙互

In This Thread

Prev Next