我正在寻找一款轻量级的Prolog引擎,它将嵌入到Mac OSX下的Obj-C应用程序中。
在Java中,有一些具有我需要的特性的优秀实现:可部署性,轻量级,动态可配置性,与Java的集成以及易于互操作性。
你能推荐类似的C / C ++吗?
经过多次搜索后,我找到了YAProlog并阅读here,它似乎可以用作从其他程序调用的库。但是(愚蠢的问题):
答案 0 :(得分:3)
GProlog
支持Mac OS X(Darwin),还有适用于Mac OS X Leopard的安装程序。 here您可以阅读call gprolog from C的内容(另请阅读this)。然后,您可以使用gplc
而不是使用gcc
,只要您添加适当的链接选项,这可能有点“技巧”找到;所以你可以使用gplc
生成目标文件,然后将所有内容粘合在一起......
关于YAP:
1)通常使用autoconf打包只需使用以下“命令序列”编译
./configure
make
最终make install
应该安装所有内容,并且必须由有权这样做的用户执行。手册建议创建ARCH
(ARCH。?)目录并从那里开始执行所有操作(因此,../configure
而不是./configure
)。
configure
脚本通常接受选项,看看它们。请检查LIBDIR
和YAPLIBDIR
。
所以,一旦你拥有了源代码tarball(源代码的.tar.gz
),就应该将其解压缩,像tar -xzf Yap-5.1.3.tar.gz
这样的命令可以在GNU / Linux上运行,同样的tar
也可以也适用于Mac OS X ......
让我们看看./configure --help
,看看你是否在继续之前看到了想要使用的有趣选项。
现在,让我们按照手册的建议(即使它看起来很奇怪; - )
mkdir ARCH. # I would put GNUlinux, or maybe
# the name must be exactly this?
cd ARCH.
../configure
您等待......并且目录将填充下一步所需的evrything。看一下创建的Makefile
,你会看到像
#
# where YAP should look for binary libraries
#
LIBDIR=$(EROOTDIR)/lib
YAPLIBDIR=$(EROOTDIR)/lib/Yap
在Makefile的目标中,我也可以阅读libYap.a
。所以,试试make
(我不会这样做,以检查可能出错的地方,也因为我在GNU / Linux上以及如何解决问题可能会有所不同),最后,你应该获得libYap.a
,等等,成为“root”(管理员)并执行
make install
在install
目标中(对我来说是install_unix
)我读了$(INSTALL_DATA) -m 755 libYap.a $(DESTDIR)$(LIBDIR)
这意味着您的.a
已经安装好,应该可以让编译器使用了如果您知道lib的位置(并且您知道它,请参阅上文并记住配置的选项)
2)当然,您可以直接将其复制到您需要的位置并“直接”使用它,但由于它是make install
“规范”安装的,因此请按照您使用其他任何方式的方式使用它系统范围“lib archive。