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 の方の書き換えは得意でないっていうか知識が絶望的に欠落しているので手が出せないですけど。