2010-07-14 46 views
3

我正在寻找一个轻量级的Prolog引擎,将其嵌入到Mac OSX下的Obj-C应用程序中。
在Java中,有一些具有我需要的特性的优秀实现:可部署性,轻便性,动态可配置性,与Java的集成以及易于互操作性。 你能推荐一些类似于C/C++的东西吗?在Obj-C项目中嵌入Prolog引擎


经过搜索,我发现YAProlog和阅读here现在看来,这可以作为库被其他程序调用。但(愚蠢的问题):

  1. 我没有经验与UNIX,我不知道究竟如何产生与YAP手册的这些命令libyap.a文件...
  2. 我可以再复制libyap .a在我的Xcode项目中并使用它?

回答

3

GProlog支持Mac OS X(Darwin),并且有Mac OS X Leopard的安装程序。和here你可以阅读如何call gprolog from C(也读this)。然后,您可以使用而不是gplc,前提是您添加了适当的链接选项,这可能有点“诡计”可以找到;这样你就可以制作目标文件和gplc,然后把所有的东西一起...

关于YAP:

1)通常与autoconf包,用下面的命令“序列”简单编译

./configure 
make 

最后的make install应该安装一切,并且必须由有权这样做的用户执行。该手册建议创建一个ARCH(ARCH。?)目录,并从那里做所有事情(所以,../configure而不是./configure)。

configure脚本通常接受选项,看看它们。请特别检查LIBDIRYAPLIBDIR

所以,一旦你的源代码包(源的.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,所以,成为“根”(管理员),做

make install 

install目标(我到底install_unix)我读$(INSTALL_DATA) -m 755 libYap.a $(DESTDIR)$(LIBDIR)这意味着你的.a已安装并应准备由编译器使用,只要你知道库的位置(你知道它,见上面,记住配置的选项)

2)当然,你可以直接复制它在你需要它的地方并直接使用它,但由于它是由“”“正常”安装的,请按照您使用任何其他“系统范围”lib存档的方式使用它。