■掲示板に戻る■ 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

Solaris教えてスレッド 其の弐

236 :名有りさん@お腹へった :2001/07/07(土) 08:36
>>235
>このパスはコンパイル時のみに使用されるものであるような気がするの
>ですが、それであっているのでしょうか?

逆ですよぉ......
-L: コンパイル時のライブラリのサーチパスを指定
-R: ランタイムのDSOのサーチパスを指定(crleによる指定もこちら)
です

ということでTeXが使用する(コンパイル時ではなく)ランタイムの
DSOの場所をリンク時に-Rで指定するか またはcrleで設定するかの
いずれかですね

-Rによる指定と違ってcrleによる指定はいつでもできますが
基本的には全てのプログラムに対してその設定が効いてしまいます

237 :231 :2001/07/07(土) 08:48
>>235
-Rは実行時検索パス、-Lは構築時検索パスなので、-Rはコンパイル時では
なくコマンド実行時に使用されるのでは?

-Rで共有ライブラリの場所を指定した場合、場所の情報はバイナリに埋めこま
れるので、235の例ではマズかったような気がする。(勘違いだったらすまそん)

235の例の場合、コマンドを実行すると/tmp/work/libにライブラリを探しにいく
けど、実際には/usr/local/libにあるので、エラーになるんじゃないかな。

対策としては、

1.コンパイル時に、-R/usr/local/libも追加しておく
tmp/work/libで作業するなら、-L/tmp/work/lib -R/usr/local/lib
-R/tmp/work/lib とすればいいかもしれない。"-R/tmp/work/lib"は、
make中の動作テスト対策ということで。

2.shellで環境変数LD_LIBRARY_PATHを設定してごまかす。
コマンド実行時に/usr/local/libを見に行くよう、LD_LIBRARY_PATHを設
定する。

3.crleコマンドで設定しておく
Linuxでの/etc/ld.so.confみたいなもの。
crle -l /lib -s /lib -l /usr/lib -l /usr/local/lib
-l /usr/openwin/lib -l /usr/ucblib -s /usr/lib -s
/usr/local/lib -s /usr/openwin/lib -s /usr/ucblib
みたいな感じ。


次100 最新50

read.cgi ver5.26+ (01/10/21-)