[Gauche-devel-jp] Re: I've error at make check of Gauche-0.8.2.

アーカイブの一覧に戻る

Katsutoshi Itoh cut-s****@maste*****
2004年 11月 30日 (火) 22:55:10 JST


In message <20041****@lava*****>, Shiro Kawai writes:
>でもtest-arithの実行ファイルが出来てないのは気になります。

ええ。私も気になります。

>srcの下で make test-arith とかするとどういうメッセージが出ますか。

最初のログと同じで undefined reference がザーっとでます。途中 snip しますが。

cut-sea @ jini> make test-arith
TARGETLIB=`pwd`  gcc -g -O2 -fPIC -DPIC -Wl,--rpath "-Wl,`pwd`" -L/usr/pkg/lib  -o test-arith test-arith.o -L. -lgauche -lcrypt -lutil -lm
test-arith.o: In function `test_32_64':
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:494: undefined reference to `Scm__ConstObjs'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:495: undefined reference to `Scm_GetIntegerClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:498: undefined reference to `Scm_GetIntegerClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:501: undefined reference to `Scm_GetIntegerClamp'

 :
 :

/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:608: undefined reference to `Scm_MakeIntegerU64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:613: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:617: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:621: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:625: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:629: undefined reference to `Scm_GetInteger32Clamp'
test-arith.o:/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:633: more undefined references to `Scm_GetInteger32Clamp' follow
test-arith.o: In function `test_32_64':
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:641: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:645: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:649: undefined reference to `Scm_GetIntegerU64Clamp'
*** Error code 1

Stop.
make: stopped in /home/cut-sea/compile/Gauche-0.8.2/src

でも、 Scm_GetInteger* 系の関数って libgauche.so* に含まれているみたいだし。
システム依存だとすると、また -L の見え方が違うのかな?と思ってこうしてみると一応通りました。

cut-sea @ jini> gcc -g -O2 -fPIC -DPIC -Wl,--rpath "-Wl,`pwd`" -L. -L/usr/pkg/lib -lgauche -lcrypt -lutil -ln -o test-arith test-arith.o

-L. を -L/usr/pkg/lib の前に持って来る様にしたつもり。
私の場合、 /usr/pkg/lib 下にも NetBSD のパッケージシステムからインストールしたやつがあるので。
あまり根拠はないけど、気になったということで。

cut-sea @ jini> ll /usr/pkg/lib/libgauche.so
-r--r--r--  1 root  wheel  702963 Mar 13  2004 /usr/pkg/lib/libgauche.so
これは 0.6.8 とかその辺の。

cut-sea @ jini> ldd test-arith
test-arith:
         -lcrypt.0 => /usr/lib/libcrypt.so.0
         -lutil.6 => /usr/lib/libutil.so.6
         -lm.0 => /usr/lib/libm387.so.0
         -lm.0 => /usr/lib/libm.so.0
         -lgauche.0 => /home/cut-sea/compile/Gauche-0.8.2/src/libgauche.so.0
         -lc.12 => /usr/lib/libc.so.12

一応テスト自体も全 pass 。

cut-sea @ jini> ./test-arith 
Testing integer arithmetic macros ...                            \
Testing integer arithmetic macros ... =========================================
<UADD>-------------------------------------------------------------------------
testing 4294967295+0 c=0 expects r=4294967295, c=0 =>ok
testing 4294967295+1 c=0 expects r=0, c=1 =>ok
 :
 :
<integer conversions, CLAMP_NONE>----------------------------------------------
testing ScmUInt64 oor -1, expects TRUE =>ok
testing ScmUInt64 oor -2^31+1, expects TRUE =>ok
testing ScmUInt64 oor -2^32+1, expects TRUE =>ok
passed.
passed.

Makefile の方の書き換えは得意でないっていうか知識が絶望的に欠落しているので手が出せないですけど。




Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る