2011-08-05 49 views
2

我一直想用Opa弄髒自己的雙手,但真的感覺缺乏REPL,這是我用新語言接觸的首選武器。瞧,Opa博客提到了一個名爲opatop的工具,看起來就是這樣,但它似乎並未包含在標準的Mac或Ubuntu發行版中。Opa在OS X Lion下構建失敗

我長途跋涉到GitHub上,抓住源頭,並開始建設,但我得到了同樣的錯誤提到here

+ /opt/local/bin/ocamlopt.opt dynlink.cmxa unix.cmxa str.cmxa nums.cmxa -g threads.cmxa -thread -I +zip zip.cmxa -I +ocamlgraph graph.cmxa -I /opt/local/lib/ocaml/ulex ulexing.cmxa buildinfos.cmxa libbase.cmxa compilerlib.cmxa libtrx.cmxa opacapi.cmxa passlib.cmxa libqmlcompil.cmxa jslang.cmxa ocamllang.cmxa libbsl.cmxa libbsl/bslregister.cmx opalang.cmxa -o libbsl/bslregister.native 
File "_none_", line 1, characters 0-1: 
Error: Cannot find file dynlink.cmxa 
Command exited with code 2. 

旁邊一無所知OCaml的發展,我知道,但它看起來像其他相關庫目錄中具有相同擴展名的文件是「OCaml本機庫文件」。鑑於此,這僅僅是一個未包含在OCaml發行版中的庫,我最終選擇了這個庫嗎?在上面的鏈接中引用的Mantis bug使其看起來好像對工作中的構建環境可能存在衝突的假設。

無論如何,任何人都可以提供任何建議嗎?

謝謝!

回答

2

ocaml的不與獅子本地DYNLINK尚未建成,所以dynlink.cmxa並不默認存在下安裝。

以下補丁將使您可以構建它。從OCaml src目錄中,patch -p1 < PATH/TO/PATCH,並根據需要重新安裝OCaml。

這是OCaml的3.12.1

--- a/configure 2011-07-04 14:15:01.000000000 -0700 
+++ b/configure 2011-08-26 10:18:42.000000000 -0700 
@@ -619,9 +619,9 @@ 
    case "$host" in 
    *-*-cygwin*)     natdynlink=true;; 
    i[3456]86-*-linux*)   natdynlink=true;; 
    x86_64-*-linux*)    natdynlink=true;; 
- i[3456]86-*-darwin10.*) 
+ i[3456]86-*-darwin1[01].*) 
     if test $arch64 == true; then 
     natdynlink=true 
     fi;; 
    i[3456]86-*-darwin[89]*)  natdynlink=true;; 
1

我調查了OS X Lion下的Opa版本,並在opalang等待批准解決主要問題時推送了2個補丁。

所以當補丁將是可用的,這是我的步驟(我記得),使獅子下OPA的工作:

首先,安裝必要的工具:

  • 安裝OS X Lion的
  • 安裝的Xcode 4
  • 安裝MacPorts的
  • 安裝的wget(MacPorts的)
  • 安裝的coreutils(MACP沃茨)
  • 安裝md5sha1sum(MacPorts的)
  • (我認爲這是所有...)

然後從源代碼編譯OPA:

  • 混帳克隆https://github.com/MLstate/opalang.git
  • CD opalang
  • dependencies/installation_helper.sh --prefix〜/ Opa
  • 更改您的PATH在您的〜/ .profile文件:出口PATH =〜/ OPA /斌:$ PATH
  • 重新源你的.bashrc:源〜/ .profile文件
  • 的./configure -prefix〜/ OPA
  • 使所有安裝
  • 您的新OPA的編譯器應該在〜/ OPA /箱:)
+0

所有這一切是我做過什麼(模上安裝位置安裝一些額外的端口和選擇),所以我期待着聽到您的補丁被接受! :) – dfreeman

+0

我的提交似乎已被推送:) – Fred

+0

不幸的是,我仍然看到相同的錯誤:無法找到文件dynlink.cmxa – dfreeman