首页 > 解决方案 > 不知何故,我在没有无限整数支持的情况下构建了 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

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

当我开始 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?

标签: prologswi-prolog

解决方案


您是否安装了软件包gmp并且gmp-devel在运行 cmake 之前?

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

zypper install libgmp10 gmp-devel

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


推荐阅读