【问题标题】:CLP error when running plweb [closed]运行plweb时出现CLP错误[关闭]
【发布时间】:2013-01-14 09:00:47
【问题描述】:

我从http://www.swi-prolog.org/git/plweb.git/snapshot/7cd70cef6011b480ef05f2b8679728abba719c0c.tar.gz下载了plweb

$cd plweb-7cd70ce/
$./run 
ERROR: plweb-7cd70ce/register.pl:35:
    source_sink `library(smtp)' does not exist
Warning: plweb-7cd70ce/register.pl:35:
    Goal (directive) failed: register:use_module(library(smtp))
Warning: plweb-7cd70ce/load.pl:50:
    Using CLP(FD) with bounded arithmetic may yield wrong results.
ERROR: /home/***/swi-prolog/lib/swipl-6.2.6/library/clp/clpq/store_q.pl:347:
    evaluable `-1 rdiv _G43862' does not exist
ERROR: /home/***/swi-prolog/lib/swipl-6.2.6/library/clp/clpq/bv_q.pl:85:
    Exported procedure store_q:isolate/3 is not defined
...

问候!

【问题讨论】:

    标签: prolog swi-prolog clpfd clpq


    【解决方案1】:

    在您提出问题后,我从您提供的链接中尝试了相同的方法,但得到了不同的错误:关于smtp,尝试?- pack_install(smtp).,它为我解决了第一个错误。那我的问题和你的不一样

    ?- [load].
    ERROR: /home/carlo/lib/swipl-6.3.7/library/explain.pl:36:
        source_sink `library(helpidx)' does not exist
    Warning: /home/carlo/lib/swipl-6.3.7/library/explain.pl:36:
        Goal (directive) failed: prolog_explain:load_files(library(helpidx),[if(changed)])
    

    当您在没有 GMP 支持的情况下运行时。我会尝试恢复 helpidx.pl 并报告结果,但不能说任何关于错过 GMP 支持的内容(我确实有)。

    编辑当查询“swi-prolog generate helpidx”时,我采用了谷歌回答的第一个link,将源代码粘贴到库目录中(使用?- file_search_path(library, X). 检查的路径)。然后我就完成了:

    ?- [load].
    % Library was moved: library(http/dcg_basics) --> library(dcg/basics)
    % load compiled 7.36 sec, 33,882 clauses
    true.
    

    我认为 helpidx.pl 是用来生成的,而不是从随机来源中挑选出来的。接下来我将尝试更好地了解文档服务器,看看我是否可以解决最后一个问题。

    HTH

    【讨论】:

    • swipl-6.3.8 将在 library(clp) 中报告相同的错误。
    • 但是你解决了 GMP 缺失依赖吗?尝试为您的平台安装 libgmp-dev 或同等设备。见this页面
    • 它现在可以通过修复 GMP 问题 *.com/questions/14299421/…
    【解决方案2】:

    您还需要 plweb-www.git,然后需要运行一些安装步骤来集成两者。 查看 www 目录 - 如果它是空的,则需要 plweb-www。

    我现在在另一台机器上,当我回到装有 plweb 的机器上时,我会看看我是如何安装的。

    我记得在一些安装程序的序言文件中更改了一些内容。

    【讨论】:

    • plweb-www.git 在哪里?
    • 复制您的结帐 uri 并将结尾从 plweb.git 更改为 plweb-www.git,然后结帐到一个单独的目录(与 plweb 相同的级别是我做的地方) - 我想我有编辑安装脚本以指向我的 plweb-www 目录所在的位置
    最近更新 更多