3

我安装了 swi-prolog 如下:

$./configure --prefix=/home/***/swi-prolog/ --enable-gmp
$gmake && gmake check && gmake install

however, it still reports no GMP syupport:

?- random(33).
Warning: This version of SWI-Prolog is not compiled with GMP support.
Warning: Floating point random operations are not supported.
ERROR: is/2: Arithmetic: `random_float/0' is not a functionenter code here

$find /usr/local/lib -name "libgmp*"                                  
/usr/local/lib/libgmp.so.10
/usr/local/lib/libgmp.so
/usr/local/lib/libgmp.la
/usr/local/lib/libgmpxx.so.6
/usr/local/lib/libgmpxx.so
/usr/local/lib/libgmpxx.la
/usr/local/lib/libgmp.a
/usr/local/lib/libgmpxx.a

我正在使用 FreeBSD 并且 swi-prolog 是稳定版本http://www.swi-prolog.org/download/stable/src/pl-6.2.6.tar.gz

任何建议表示赞赏!

4

1 回答 1

4

它通过设置 CFLAGS 和 LDFLAGS 来修复:

$echo $LDFLAGS                                       
-L/usr/local/lib
$echo $CFLAGS                                       
-I/usr/local/include
$./configure --prefix=/home/sw2wolf/swi-prolog/ --enable-gmp
$gmake && gmake install

$ldd ~/swi-prolog/lib/swipl-6.3.8/bin/i386-freebsd9.0/swipl                                                                                 
**libgmp.so.10** => /usr/local/lib/libgmp.so.10 (0x2815b000)
libexecinfo.so.1 => /usr/local/lib/libexecinfo.so.1 (0x281b9000)
librt.so.1 => /usr/lib/librt.so.1 (0x281c4000)
libreadline.so.6 => /usr/local/lib/libreadline.so.6 (0x281ca000)
libncursesw.so.5.9 => /usr/local/lib/libncursesw.so.5.9 (0x281ff000)
libm.so.5 => /lib/libm.so.5 (0x28229000)
libthr.so.3 => /lib/libthr.so.3 (0x28243000)
libc.so.7 => /lib/libc.so.7 (0x28264000)
libncurses.so.8 => /lib/libncurses.so.8 (0x28383000)
libtinfow.so.5.9 => /usr/local/lib/libtinfow.so.5.9 (0x283c3000)

问候!

于 2013-02-03T00:54:52.397 回答