3

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


经过几次搜索,我找到了 YAProlog 并在此处阅读,它似乎可以用作从其他程序调用的库。但是(愚蠢的问题):

  1. 我对 UNIX 没有经验,我不知道如何使用 YAP 手册的这些命令生成 libyap.a 文件......
  2. 然后我可以在我的 Xcode 项目中复制 libyap.a 并使用它吗?
4

1 回答 1

3

GProlog支持 Mac OS X (Darwin) 并且有 Mac OS X Leopard 的安装程序。在这里您可以阅读如何从 C 调用 gprolog(另请阅读内容)。然后,如果您添加了正确的链接选项,gplc则可以使用而不是使用gcc,这可能有点“棘手”;这样您就可以生成目标文件,gplc然后将所有内容粘合在一起...

关于雅普:

1) 通常带有 autoconf 的包只需使用以下命令“序列”进行编译

./configure
make

finalmake install应安装所有内容,并且必须由有权执行此操作的用户执行。该手册建议创建一个ARCH(ARCH.?) 目录并从那里做所有事情(所以,../configure而不是./configure)。

configure脚本通常接受选项,看看它们。特别检查 where areLIBDIRYAPLIBDIR.

所以,一旦你有了源代码压缩包(.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

你等一下......目录中填充了下一步所需的所有内容。看看 created 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.

于 2010-07-14T12:12:08.050 回答