室岡さん:
こんにちは、産総研の原です。
rtcdの件ですが、詳細は、安藤の方からあるかもしれませんが、私の方で少しソースコードを見たところ、モジュールのロードには、Linuxでは、内部でdlopenで読み込んでいます。
基本的には、動作はdlopenと同じだと思います。
マニュアルを参照していただければわかると思うのですが、室岡さんの動作環境、実行手順等の記載がないのであくまでも推測でしかありません。
rtcdの起動前にLD_LIBRARY_PATHが設定されてあれば、本来なら、依存ライブラリは、検索されると思います。
ただし、rtcdが set-UIDやset-GIDされていればこの環境変数は無視されますが。
もう少し実行された状況を記載していただければ、検証できるとは思いますが。
以上、よろしくお願いいたします。
2014年4月30日 22:08 Masaki Murooka :
> 室岡です
>
> rtcdを使ってAというディレクトリにあるA.soというコンポーネントを
> manager.modules.preload:A.so
> manager.modules.load_path:A
> というオプションをつかってで読み込んでいるのですが,
> sh 1: rtcprof: not found
> というエラーがでています.
> A.soはBというディレクトリにあるB.so
> というライブラリに依存しており,
> manager.modules.load_path:B,A
> としてみたり,
> export LD_LIBRARY_PATH=A:B
> しても同じ状況です.
> ただ,
> manager.modules.preload:B.so,A.so
> とすると,ちゃんとB.soが読み込まれています.
>
> rtcdで使う.soの読み込み時にはLD_LIBRARY_PATHは見ないのでしょうか?
>
室岡です
rtcdを使ってAというディレクトリにあるA.soというコンポーネントを
manager.modules.preload:A.so
manager.modules.load_path:A
というオプションをつかってで読み込んでいるのですが,
sh 1: rtcprof: not found
というエラーがでています.
A.soはBというディレクトリにあるB.soというライブラリに依存しており,
manager.modules.load_path:B,A
としてみたり,
export LD_LIBRARY_PATH=A:B
しても同じ状況です.
ただ,
manager.modules.preload:B.so,A.so
とすると,ちゃんとB.soが読み込まれています.
rtcdで使う.soの読み込み時にはLD_LIBRARY_PATHは見ないのでしょうか?