Installation GODI电池:安装问题(再次)

Installation GODI电池:安装问题(再次),installation,ocaml,godi,ocaml-batteries,Installation,Ocaml,Godi,Ocaml Batteries,我曾经问过这个问题,但事实证明,我所认为的解决方案并非如此 问题 我刚刚开始新的GODI安装,我正在尝试安装。我已对所有依赖项进行了排序,例如甘菊。我得到以下错误: > ocamlfind ocamlopt -a -package camomile,num,str src/batCamomile.cmx src/batConcurrent.cmx src/batInnerWeaktbl.cmx src/batInnerIO.cmx src/batInterfaces.cmx src/bat

我曾经问过这个问题,但事实证明,我所认为的解决方案并非如此

问题 我刚刚开始新的GODI安装,我正在尝试安装。我已对所有依赖项进行了排序,例如甘菊。我得到以下错误:

> ocamlfind ocamlopt -a -package camomile,num,str src/batCamomile.cmx src/batConcurrent.cmx src/batInnerWeaktbl.cmx src/batInnerIO.cmx src/batInterfaces.cmx src/batMonad.cmx src/batRef.cmx src/batValue_printer.cmx src/batEnum.cmx src/batPrintf.cmx src/batList.cmx src/batRefList.cmx src/batArg.cmx src/batBitSet.cmx src/batChar.cmx src/batReturn.cmx src/batString.cmx src/batUChar.cmx src/batUTF8.cmx src/batRope.cmx src/batUnix.cmx src/batIO.cmx src/batArray.cmx src/batBigarray.cmx src/batNumber.cmx src/batBig_int.cmx src/batStd.cmx src/batBool.cmx src/batBuffer.cmx src/batInt.cmx src/batMap.cmx src/batOption.cmx src/batPMap.cmx src/batLazyList.cmx src/batParserCo.cmx src/batVect.cmx src/batCharParser.cmx src/batFloat.cmx src/batStream.cmx src/batGenlex.cmx src/batComplex.cmx src/batDigest.cmx src/batFormat.cmx src/batGc.cmx src/batHashtbl.cmx src/batInt32.cmx src/batInt64.cmx src/batLexing.cmx src/batMarshal.cmx src/batNativeint.cmx src/batNum.cmx src/batOo.cmx src/batFile.cmx src/batPrint.cmx src/batPrintexc.cmx src/batPervasives.cmx src/batQueue.cmx src/batRandom.cmx src/batScanf.cmx src/batSet.cmx src/batStack.cmx src/batStr.cmx src/batSys.cmx src/batUnit.cmx src/batBase64.cmx src/batCharEncodings.cmx src/batDllist.cmx src/batDynArray.cmx src/batGlobal.cmx src/batSubstring.cmx src/batLogger.cmx src/batPSet.cmx src/batMultiPMap.cmx src/batOptParse.cmx src/batPair.cmx src/batUCharParser.cmx src/batPathGen.cmx src/batResult.cmx src/batSeq.cmx src/batAvlTree.cmx src/batISet.cmx src/batIMap.cmx src/batteries_config.cmx src/batteries_print.cmx src/batteries_uni.cmx src/batMutex.cmx src/batRMutex.cmx src/batteries.cmx -o src/batteries.cmxa
> ocamlfind ocamlopt -shared -linkall -package camomile,num,str -o src/batteries_uni.cmxs src/batteries_uni.cmxa
> + ocamlfind ocamlopt -shared -linkall -package camomile,num,str -o src/batteries_uni.cmxs src/batteries_uni.cmxa
> ld: warning: -read_only_relocs cannot be used with x86_64
> ld: codegen problem, can't use rel32 to external symbol _caml_negf_mask in .L101 from src/batteries_uni.a(batFloat.o)
> collect2: ld returned 1 exit status
> File "caml_startup", line 1, characters 0-1:
> Error: Error during linking
> Command exited with code 2.
> make[7]: *** [all] Error 10
> Error: Exec error: File /Users/surikator/godi/build/godi/godi-batteries/./../../mk/bsd.pkg.mk, line 1039: Command returned with non-zero exit code
> Error: Exec error: File /Users/surikator/godi/build/godi/godi-batteries/./../../mk/bsd.pkg.mk, line 1378: Command returned with non-zero exit code

### Error: Command fails with code 1: godi_console
不起作用的解决方案 在上一个问题中,基于,我切换了GODI设置

GODI_BATTERIES_SHLIB = no
它确实完成了电池的安装。但是我刚刚开始新的GODI安装,即使有了这个设置,我仍然会遇到上面的错误(这与我最初的错误相同)

我的设置 我正在MacBookPro(64位)上使用MacOSX版本10.6.4,并使用最新版本的GODI(rocketboost-20091222)

思想? 从

看起来Batters/godi确实在尝试为32位做一些事情,而实际上它应该为64位做一些事情。电池或godi中是否有可更改的设置

可以看出,问题的根源是库
batters\u uni.a
。我不知道里面有没有32位的东西?我注意到
batters\u uni.ml
包含整数的模块Int32和Int64,但这应该不是什么问题,不是吗

有什么想法吗

这方面的任何帮助都会很好

非常感谢,
Surikator。

我做了一些调查,结果发现GODI打包脚本中有一个bug,因此,
GODI_Batters\u SHILB
选项是不可操作的。我已经纠正了这个bug并发布了更新的构建脚本,所以将其设置为
no
,并在更新GODI安装后构建电池(
godi_update
,或
godi_console
中的“检查新的源程序包”)应能成功阻止
.cmxs
文件的生成和安装。我认为这将允许您现在在Mac上构建


我想找到实际的构建bug并获得在Mac上工作的
.cmxs
文件,但据我所知,所有电池开发人员都没有Mac所以这有点难。

不要使用GODI?和你一样,我在依赖性和复杂性方面有很多问题,因为我发现这不值得。我自己用
ocamlfind
成功地管理了我的OCaml包,如果包中没有
META
文件,就创建它们,然后自己安装。大多数包重新包装,并且更新的频率不足以保证一个复杂的软件包管理器。只要我的两分钱。祝你好运!@nlucaroni是的,这一直是一个选项,尽管我非常喜欢GODI。在一个地方列出大多数使用过的软件包是非常实际的,只需敲击3-4个键就可以安装它们。而且对于r到目前为止我所做的一切;只是没有电池。但让我们假设我现在不使用godi_控制台。两个问题:(1)我可以手动在godi文件夹结构上安装电池吗?(2)如何使用ocamlfind了解在安装bateries之前需要安装哪些库?@nlucaroni事实上,我刚刚将Batters 1.2.2下载到一个新文件夹中,并在其上运行了一个“全部生成”,得到了与上面完全相同的错误。我想这是一个32/64位的东西,涉及(我的)Mac OS和电池…显然与GODI无关。看起来GODI脚本没有正确地关闭共享库构建(可能是电池生成文件在这方面有缺陷)。今晚我将尝试查看它,看看它是否可以修复(相对而言)很容易。出于某种原因,我担心的问题是:谢谢你的努力。我做了更新(并注意到电池库中还有一些可供配置的设置)。它编译得很好,电池现在安装在我的godi安装的OCaml上。太棒了!谢谢你的帮助!
> ld: warning: -read_only_relocs cannot be used with x86_64
> ld: codegen problem, can't use rel32 to external symbol _caml_negf_mask in .L101 from src/batteries_uni.a(batFloat.o)