Perlについての質問箱 33箱目
■ このスレッドは過去ログ倉庫に格納されています
0570つづき
2007/11/25(日) 10:57:56staticにしたくない(またはできない)場合のmoduleの、DLLの検索Dirの制御を動的にできないか?
とゆうことです。
PerldocやCPANのDynaLoaderやXSLoaderのDocumentや、Linuxの環境変数についてとか調べた結果、
システム環境変数(?)の$LD_LIBRARY_PATHや、perl -V した時の libpath、DynaLoader.pmの@dl_library_pathなんかに
DLL(.so)を探しに行くときのDefaultのPATHが格納されているようなんですが、これって外側から制御することは可能ですか?
例えばとあるModuleをコンパイルする時に、perl Makefile.PL OPTIMIZE="-O3・・・"とかしたら、デフォルトの設定から
OPTIMIZE変数を上書きしてコンパイルしてくれます。
でも、上のmysqlの例だと、LIBPATH=/usr/local/mysql/lib とか、LD_LIBRARY_PATH=/usr/local/mysql/lib とかつけて、
perl Makefile.PLしても、make test ブロックなんかでやっぱり上記のエラーが出て止まってしまいます。
この時も、/usr/lib/以下に/usr/local/mysql/lib/の内容をコピーしてやったりしたらmake testが通るようになるんですが、
そうじゃなくて、LIBPATH=/usr/local/mysql/lib make test みたいなコマンドで、適宜LoadDirectoryを追加とかできないですか?
mysqlの場合だと、異なるいくつかのVersionを同じシステム上で動かして(当然default-unix-socketやportが違う)
動作テストをしたいときや、
mod_perlがらみのscriptとかの動作テストをする時も、/usr/local/apache2/libなんかをLibrary検索pathに含めたいんです。
(これも、perl -e 'use APR'とかすると、Can't load ・・・libaprutil-1.so がありません とか言われてしまう。)
■ このスレッドは過去ログ倉庫に格納されています