我以某种方式构建了没有无限整数支持的SWI-Prolog我需要使用需要此支持的谓词

问题描述

我重新安装了操作系统,从而重新安装了SWI-Prolog。

这是我为安装运行的确切命令。

git clone https://github.com/SWI-Prolog/swipl-devel.git
cd swipl-devel
git submodule update --init

cd swipl-devel
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/logic -G Ninja ..
ninja
ctest -j 4
ninja install

在尝试使用非忍者安装方法时遇到了问题(但这是另一篇文章)。

当我开始刷卡时,我会收到此提示消息

(ins)nick@nickSUSE:~/prolog/scheduler> swipl base.pl
Warning: /home/nick/prolog/scheduler/base.pl:1:
Warning:    Using CLP(FD) with bounded arithmetic may yield wrong results.

blah blah blah

我发现发生这种情况的唯一原因是因为我整个项目中最基本的谓词基于divmod/4!该文档明确指出,只有在swipl安装了未绑定整数支持的情况下,才能使用此谓词。

我重新安装了SWI-Prolog,并遇到了同样的问题。我该怎么做才能使用divmod / 4?

解决方法

在运行cmake之前是否已安装软件包gmpgmp-devel

安装它的命令可能是(使用zypper):

zypper install libgmp10 gmp-devel

然后删除目录build中的所有内容,然后从cmake命令重新启动。