[Gauche-devel-jp] undefined symbol ...

Back to archive index

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




Gauche-devel-jp メーリングリストの案内
Back to archive index