2011-08-05 75 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