2016-06-09 3 views
0

Ich habe dieses Programm bekam threadtest.ml genannt:Wie verknüpfe ich das Thread-Modul in Cygwin?

Thread.join (Thread.create (fun _ -> print_string "Hello, World!\n")()) 

ich es wie so bin Kompilieren:

$ ocamlc -thread unix.cma threads.cma -o threadtest threadtest.ml 
File "threadtest.ml", line 1: 
Error: Error on dynamically loaded library: /usr/lib/ocaml/stublibs/dllunix.so: flexdll error: cannot relocate RELOC_REL32, target is too far: 0xfffffffc020c7112 0x20c7112 

Dies ist, welche Version von ocamlc ich habe.

$ ocamlc -v 
The OCaml compiler, version 4.02.3 
Standard library directory: /usr/lib/ocaml 

Was mache ich falsch? Ich habe keine Erklärung für diesen Fehler gefunden.

UPDATE:

ich auch mein System Rebasing indem Sie den Anweisungen hier versucht haben: https://stackoverflow.com/a/37616907/714167

Aber nichts scheint zu funktionieren.

+0

Mögliches Duplikat [Fehler mit Ocaml Thema Modul auf Cygwin Verknüpfung] (http://stackoverflow.com/questions/37647206/error-linking-with-ocaml-thread-module-on-cygwin) – camlspotter

+0

sollten Sie habe mit diesem Codebeispiel Ihre vorherige Frage verbessert. – camlspotter

+0

Niemand beantwortete diese Frage, also formulierte ich die Frage ohne projektspezifische Informationen neu, in der Hoffnung, dass das die Leute ermutigen würde, es zu betrachten. Ich habe die vorherige Frage gelöscht. –

Antwort

1

Sie sollten es kompilieren mit ocamlc -thread unix.cma threads.cma threadtest.ml

[EDIT] Wie camlspotter in den Kommentaren gesagt, kann es ein cygwin32 Problem sein, hier ist ein copy/paste für diejenigen, die wie ich, die nie die Kommentare lesen (für OP warten, um zu wissen, ob es funktioniert):

camlspotter: Meine hat Cygwin OCaml kein Problem des Codes verknüpfen. Wenn ich Sie wäre, würde ich Cygwin (und Flexdll, falls vorhanden) aufräumen und neu beginnen. Wenn Sie Cygwin32 verwenden, könnte die Migration auf Cygwin64 Ihr Problem möglicherweise beheben: Ich hatte zu viele mit Rebase zusammenhängende Probleme mit Cygwin32 und gab es auf.

+1

Ja, 'threads.cma' muss verlinkt sein, aber es ist ein anderes Problem. Sein Problem ist möglicherweise auf eine falsche Installation von Flexdll oder die Verfälschung von Cygwin zurückzuführen. – camlspotter

+0

In der Tat. Ich warte auf seine Antwort, dann ;-) – Lhooq

+0

Ich denke, du hast recht, aber es hat immer noch nicht das Linking-Problem behoben. –

Verwandte Themen