0

我遇到了错误:

 "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

4

2 回答 2

1

(回顾)与

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

我打了电话

mmm socrates

我有

$c_call_prolog...Undefined procedure

w/o putenv,返回相同的调用

FATAL ERROR: Could not find system resources

我终于变了

PL_initialise(1, plav)

其中 plav[0] = "凡人"; plav[1] = 空;到

PL_initialise(1, argv)

我能够从

rval = PL_call_predicate(NULL, PL_Q_NORMAL, pred, h0);

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

于 2013-04-03T13:01:42.970 回答
0

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

于 2013-04-09T07:04:54.463 回答