Gauche > Archives > 2009/11/23

2009/11/23 00:18:27 UTCshiro
#
あ、了解です。
2009/11/23 01:01:15 UTCshiro
#
リリースノート書いた。今emailアナウンス書いてるところ。
2009/11/23 16:51:29 UTCPocket
#
Gauche.framworkを.appに組み込んでいて、Gauche.frameworkと同じフォルダにtest.scmというファイルがあるとしてこれをScm_Load()で読み込むときは相対パスはどういう風に指定すれば良いんでしょうか、よろしくお願いします。
2009/11/23 17:24:00 UTCshiro
#
もうOSX環境が手元にないんで細かいことは忘れちゃいましたが、「Gauche.frameworkと同じフォルダ」というのはアプリケーションのappフォルダ直下ってことでしょうか。そのアプリケーションを起動した時のカレントディレクトリってどうなってましたっけ。
#
いや、openで起動されることもあるからカレントディレクトリは当てにできないか。そもそもそういう使い方(appフォルダ直下にscmを置く)ってやったことあったかな。
#
アプリケーション固有のSchemeコードも、Gauche.frameworkの中のload-pathから見えるところに放り込んでいたような気もする。
2009/11/23 20:20:10 UTCshiro
#
あ、あとは、アプリケーションコード中からそのアプリ自身のパスが取れるはずだから、それを利用するって手があるか。
2009/11/23 20:39:02 UTCPocket
#
なるほどGauche.framworkのload-pathから見えるところに放り込むのが一番最短ですね。ありがとうございます。
2009/11/23 20:51:40 UTCPocket
#
なるほど、http://practical-scheme.net/wiliki/wiliki.cgi?naoya_t%3aMacOSX%3aGauche.frameworkを使おう
#
では*load-path*はVersions/Current/share/gauche/site/libになっていると書いていますが、エラーメッセージを吐き出させてみると*load-path*は
#
("/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.9/lib")
#
になっているようですね。
2009/11/23 20:55:53 UTCshiro
#
む? ちゃんとframeworkとしてビルドされてないのかな?
2009/11/23 20:56:48 UTCPocket
#
いちおう./configure --enable-framework && make frameworkをして生成されたフレームワークなのですが..
2009/11/23 20:58:17 UTCshiro
#
libgauche.dylibが/usr/localの方じゃなくてframeworkの方をリンクしてるってことを確かめる方法はありますか?
2009/11/23 20:59:26 UTCPocket
#
Gauche.framwork内のlibgauche.dyllibがですか?
#
Gauche.framework/Versions/0.9/lib/libgauche.dylib
#
をリンクしている事になっているようです。
2009/11/23 21:00:28 UTCshiro
#
あ、アプリケーションがframework中のlibgauche.dylibをリンクしてるかどうか、という意とでした。
#
s/意と/意図/
#
OSXにstringsってあったっけ。あれば、strings libgauche.dylib | grep com.schemearts.gauche するどどうなりますか。何か出てきたら、ちゃんとframeworkとしてビルドできてるってことになると思います。何も出てこなければビルドがどっかおかしい。
2009/11/23 21:05:03 UTCPocket
#
com.schemearts.gaucheというのが出てきました。
2009/11/23 21:05:53 UTCshiro
#
じゃあちゃんとframework中のパスを見るコードは入ってるってことですね。
#
ちなみにstrings libgauche.dylib | grep /usr/local/share/gauche/0.9 とかするとやっぱり何か出ます?
#
あ、まてよ、そこじゃないや。
#
frameworkとしてビルドしたディレクトリの、src/gauche/arch.hを見てください
#
GAUCHE_LIB_DIR等のマクロが定義されてますが、そのパス名の頭に'@'がついていれば正常です
#
そこが"/usr/local..."で始まってたらどっかで失敗してる
2009/11/23 21:10:23 UTCPocket
#
@がついてますね...
2009/11/23 21:11:10 UTCshiro
#
あれぇ。じゃあ/usr/local/は一体どこから来たのだろう? stringsで見ると/usr/local入ってます?
2009/11/23 21:11:37 UTCPocket
#
入ってませんね。...
#
もしや、私の環境の問題化も知れません。
#
すこし探ってみます。
#
Hmm...もしや
#
先ほどのwikiページに書かれているようにgauche-init.scmをloadしているのですが、これが原因だったりしますか?
#
すみません,
2009/11/23 21:15:48 UTCshiro
#
いや、gauche-init.scmはload-pathをいじることはないはず
2009/11/23 21:16:17 UTCPocket
#
なるほど。ありがとうございます。自分の環境を確認してみます。
2009/11/23 21:18:49 UTCshiro
#
そうだ、Gauche.frameworkの下のどこかにgauche-configってコマンドがインストールされてると思うんですが、そいつを ./gauche-config --syslibdir みたいに走らせてみてください。
#
それで/usr/localが出てくるようなら明らかにframeworkのビルドの問題、
#
そうでなければ、やっぱりアプリケーション自体がシステムのlibgaucheを見てしまっているという可能性が捨てきれません
2009/11/23 21:26:07 UTCpocket
#
すいません、所用で出なければ行けないので後程ためして見ます