setenvを使用してDYLD_LIBRARY_PATHを設定していますので、dlopen()を実行すると正しい.dylibを見つけることができますが、dlopen DYLD_LIBRARY_PATHに追加したパスを検索しているようです。setenvを使用してdlopen呼び出しを行う際の問題
私がDYLD_LIBRARY_PATHに行った変更は、自分のプロセスを再実行するまで有効になりません。これは正しいです?
また正しい場合は、DYLD_LIBRARY_PATHを設定して、自分のプロセスをリセットして変更を加えてもらう方法がありますか?
ああ私はこのコードをMAC OSXで書いています。
ありがとうございます。
現在、私たちのソフトウェアは、余分なパスを使ってLD_LIBRARY_PATHを設定するための再実行を行います。私は再execveなしでそれをやろうとしていましたが、それがMAC OS上の唯一の方法かもしれません。これにより、Xcodeのデバッグが最初の実行と2番目の実行の間で中断されるため、デバッグが非常に困難になります。 –
Javaは再実行IFFを実行しますが、既存のLD_LIBRARY_PATHはまだ正しくありません。あなたのプログラムは同じことをしなければならない、または無限ループに入るでしょう。だから、それをデバッグするには、LD_LIBRARY_PATHを再実行前(おそらくXcodeを起動する前)に設定しておいたものに設定し、デバッグしてください。 –