我想基於使用Prolog謂詞的C-File構建可執行文件。我想使用GNU Prolog。從C作爲獨立調用(GNU)Prolog的示例
我成功(基於GNU序言教程)建examp_c.c,examp.pl:
#include <string.h>
#include <gprolog.h>
PlBool
my_call(PlTerm goal)
{
PlTerm *arg;
int functor, arity;
int result;
arg = Pl_Rd_Callable_Check(goal, &functor, &arity);
Pl_Query_Begin(PL_FALSE);
result = Pl_Query_Call(functor, arity, arg);
Pl_Query_End(PL_KEEP_FOR_PROLOG);
return (result == PL_SUCCESS);
}
編譯使用
gplc examp.pl examp_c.c
當調用可執行examp Prolog的解釋是開始/模擬:
GNU Prolog 1.4.4 (64 bits)
Compiled Aug 3 2013, 20:06:22 with gcc
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?-
但我想要的是有一個C程序內部cal而不通過Prolog解釋器與用戶進行交流。 Prolog謂詞應該作爲/在C程序中的參數提交,或者在內部生成。
你知道這個例子嗎?或者我誤解了某些東西,這不可能嗎?
你看,我剛剛開始作爲新手......我會很高興得到一些幫助:-)提前非常感謝。
非常感謝你們倆,@Paulo了。有用! :-)最後一個問題:使用gnuprolog可以生成一個庫(作爲windows上的dll),而不僅僅是一個「exe」文件?或者只有基於SWI Prolog纔有可能? – kiw 2014-09-22 07:25:01