Makoto Satoh
makot****@yahoo*****
2005年 4月 20日 (水) 17:10:18 JST
佐藤です。 自作のGDバインディングをテストしているうちに、テスト実行時に 共有ライブラリがリンクできなくなってしまいました。 お恥ずかしながら、自分で変更したことが追跡できなくてなって しまいました。 状況は、makeは通ってgd.soはできています。test.scmでロード しようとすると、以下のようなエラーになります。 makoto @ umeko:~/Gauche-gd$ make check /usr/local/bin/gosh -I. test.scm > test.log Testing gd ... *** ERROR: failed to link "gd" dynamical ly: ./gd.so: undefined symbol: gdImageDestroy Stack Trace: _______________________________________ make: *** [check] エラー 70 どうやって調べていけば良いでしょうか? ; MLの過去分やWebを検索してみましたが良く分かりませんでした。 勘違いもあるかもしれませんが、一応環境っぽいデータをつけます。 $ uname -a Linux umeko 2.6.8-1-386 #1 Thu Nov 25 04:24:08 UTC 2004 i686 GNU/Linux $ gosh -V Gauche scheme interpreter, version 0.8.3 [euc-jp,pthreads] $ gauche-config --reconfigure ./configure '--enable-multibyte=euc-jp' '--enable-threads=pthreads' $ dpkg -l | grep libgd2 ii libgd2 2.0.33-1.1 GD Graphics Library version 2 ii libgd2-dev 2.0.33-1.1 GD Graphics Library version 2 (development v ii libgd2-noxpm 2.0.33-1.1 GD Graphics Library version 2 (without XPM s ii libgd2-noxpm-d 2.0.33-1.1 GD Graphics Library version 2 (development v $ gdlib-config --libs -lpthread -ljpeg -lfreetype -lpng12 -lz -lm $ gdlib-config --cflags -I/usr/include $ make /usr/local/bin/gauche-config --fixup-extension gd gcc -g -O2 -I/usr/local/lib/gauche/0.8.3/include `gdlib-config --cflags` -c gd_head.c -o gd_head.o /usr/local/bin/gosh genstub gd.stub gcc -g -O2 -I/usr/local/lib/gauche/0.8.3/include `gdlib-config --cflags` -c gd.c -o gd.o gcc -g -O2 -I/usr/local/lib/gauche/0.8.3/include `gdlib-config --cflags` -c gd_tail.c -o gd_tail.o gcc -Wl,-rpath -Wl,`gauche-config --sysarchdir` -shared -o gd.so gd_head.o gd.o gd_tail.o -L/usr/local/li b/gauche/0.8.3/i686-pc-linux-gnu -lgauche -ldl -lcrypt -lutil -lm -lpthread `gdlib-config --libs` rm gd.c $ make check /usr/local/bin/gosh -I. test.scm > test.log Testing gd ... *** ERROR: failed to link "gd" dynamical ly: ./gd.so: undefined symbol: gdImageDestroy Stack Trace: _______________________________________ make: *** [check] エラー 70 $ ldd gd.so libgauche.so.0 => /usr/local/lib/libgauche.so.0 (0x40023000) libdl.so.2 => /lib/tls/libdl.so.2 (0x400ec000) libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0x400ef000) libutil.so.1 => /lib/tls/libutil.so.1 (0x4011c000) libm.so.6 => /lib/tls/libm.so.6 (0x4011f000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40141000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40150000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x4016f000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0x401dc000) libz.so.1 => /usr/lib/libz.so.1 (0x40201000) libc.so.6 => /lib/tls/libc.so.6 (0x40213000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) $ nm --dynamic gd.so | grep gdImageDestroy U gdImageDestroy