我遇到了错误:
"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
?
答案 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 / Falserval = PL_call_predicate(NULL, PL_Q_NORMAL, pred, h0);
虽然这让我感到困惑。 PL_initialise()期望什么?...不是一个被称为谓词?
答案 1 :(得分:0)
没有解决方案。我最终安装了ubuntu 12.10 64位(以前是32位)。所有那些奇怪的行为都消失了。