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

Somehow I built SWI-Prolog without unbounded integer support. I need to use a predicate that requires this support

我重新安装了 OS,因此重新安装了 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

我 运行 在尝试使用非忍者安装方法时遇到了问题(但那完全是另一种 post)。

当我开始 swipl 时,我收到了这条揭示信息

(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 命令重新启动。