2010-07-14 49 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存檔的方式使用它。