Frage

Ich habe diese Frage gestellt Vor Aber es stellt sich heraus, dass das, was ich für die Lösung hielt, nicht ist.

Das Problem

Ich habe gerade eine frische Godi -Installation begonnen und versuche, die zu installieren Batterienbibliothek. Ich habe alle Abhängigkeiten sortiert, z. B. Camomile. Ich bekomme den folgenden Fehler:

> 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

Die Lösung, die nicht funktioniert

In meiner vorherigen Frage basierend auf dieser Beitrag, Ich habe die Godi -Einstellung umgeschaltet

GODI_BATTERIES_SHLIB = no

Und es wurde beendet, um Batterien zu installieren. Aber ich habe gerade eine neue Installation von Godi begonnen und selbst mit dieser Einstellung bekomme ich immer noch den Fehler (was das gleiche ist, das ich ursprünglich hatte).

Meine Einstellungen

Ich verwende Mac OS X Version 10.6.4 auf einem MacBookpro (64bit) mit der neuesten Version von Godi (Rocketboost-20091222).

Ideen?

Aus

> ld: warning: -read_only_relocs cannot be used with x86_64

Es scheint wirklich, dass Batterien/Godi versucht, etwas für 32 Teile zu tun, wenn es für 64 etwas tun sollte. Gibt es eine Einstellung in Batterien oder Godi, wo dies geändert werden kann?

Aus

> ld: codegen problem, can't use rel32 to external symbol _caml_negf_mask in .L101 from src/batteries_uni.a(batFloat.o)

Es ist ersichtlich, dass die Quelle des Problems die Bibliothek ist batteries_uni.a. Ich weiß nicht, ob es dort etwas imposant ist? ich habe bemerkt, dass batteries_uni.ml Beinhaltet Module INT32 und INT64 für Ganzzahlen, aber das sollte nicht wirklich ein Problem sein, sollte es?

Irgendwelche Ideen?

Jede Hilfe wäre großartig!

Vielen Dank, Surikator.

War es hilfreich?

Lösung

Ich habe einige Untersuchungen durchgeführt, und es stellte sich heraus GODI_BATTERIES_SHILB Option war ein No-op. Ich habe diesen Fehler korrigiert und aktualisierte Build -Skripte veröffentlicht, also einstellen no und Batterien aufbauen, nachdem Sie Ihre Godi -Installation aktualisiert haben (godi_update, oder "nach neuen Quellpaketen prüfen" in godi_console) sollte die erfolgreich verhindern .cmxs Dateien aus erstellt und installiert. Ich denke, dies ermöglicht es Ihnen, jetzt auf dem Mac zu bauen.

Ich möchte den eigentlichen Build -Fehler finden und bekommen .cmxs Dateien, die auf Mac arbeiten, aber keiner der Batterien -Entwickler haben Macs (meines Wissens), also ist es ein bisschen schwierig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top