正确的SWI_HOME_DIR值?

时间:2013-04-02 04:17:24

标签: prolog swi-prolog

我遇到了错误:

 "FATAL ERROR: Could not find system resources"

然后我添加了以下代码:

 putenv("SWI_HOME_DIR=/usr/lib/swi-prolog");

我遇到了另一个问题:

 "$c_call_prolog...Undefined procedure"

(此处有更多详情)

我在Ubuntu 10.12

上运行了以下命令
  sudo apt-get install swi-prolog build-essential.

我编写了一个简单的C程序来测试它,但无法从prolog检索返回值。假设我想与mortal.pl进行交互,我编译了:

swipl-ld -o mmm mortal.c mortal.pl

没有错误,但就像我提到的那样。我得不到我的预期。

我获得了另一个代码,代码上没什么奇怪的。这次我得到了第一个错误。似乎如果将swi-prolog设置为该目录,它将不会搜索我的谓词。

我应该在哪里以及如何设置SWI_HOME_DIR

2 个答案:

答案 0 :(得分:1)

(回顾)

putenv("SWI_HOME_DIR=/usr/lib/swi-prolog");

我致电

mmm socrates

我得到了

$c_call_prolog...Undefined procedure

没有putenv,同样的回复

FATAL ERROR: Could not find system resources

我终于改变了

PL_initialise(1, plav)

其中plav [0] =“凡人”; plav [1] = NULL;到

PL_initialise(1, argv)

我可以从

获得True / False
rval = PL_call_predicate(NULL, PL_Q_NORMAL, pred, h0);

虽然这让我感到困惑。 PL_initialise()期望什么?...不是一个被称为谓词?

答案 1 :(得分:0)

没有解决方案。我最终安装了ubuntu 12.10 64位(以前是32位)。所有那些奇怪的行为都消失了。

相关问题