2016-09-26 6 views
2

das ist wahrscheinlich eine einfache Frage, aber ich poste es als eine Frage, da ich es nicht herausfinden kann. Es könnte irgendwo auf Stackoverflow ein Duplikat geben, aber ich konnte keinen finden. Ich schreibe Code auf Ubuntu mit Visual Studio Code. Wie kompiliere ich diesen Code auf Ubuntu?

Dies ist der Inhalt meiner test.fs Datei:

open System 
(*print*) 

let main() = 
    Console.WriteLine("hello") 

main() 

ich es auf dem Terminal kompilieren wollte. Ich weiß, dass der Compiler da ist, weil ich eine interaktive F # -Sitzung daraus ausführen kann. Ich erhalte diesen Fehler für jede der Leitungen (4)

error: expected class or object definition 

Das hat mich führen zu glauben, dass es ein Namespace/Paket Problem war, die ich glaube, ein Modul in F # ist. Ich fand dies jedoch (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/modules): "Eine Codedatei beginnt nicht mit einer Moduldeklaration auf oberster Ebene oder einer Namespacedeklaration, der gesamte Inhalt der Datei, einschließlich aller lokalen Module, wird Teil eines implizit erstellten Top-Level-Moduls Dieser Name hat denselben Namen wie die Datei ohne die Erweiterung. Der erste Buchstabe wird in Großbuchstaben konvertiert. "

Daher sollte es nicht notwendig sein, es als ein Modul zu deklarieren. Das habe ich aber auch ohne Erfolg versucht.

Also kann mir jemand helfen was könnte die Fehlerursache sein?

und auch weiter helfen mir wie man das richtig kompiliert?

+0

Wenn Sie hier keine Hilfe bekommen; Sie könnten Askubuntu auch versuchen. – GhostCat

+0

Interessant: Wusstest du, dass du F # (unter Verwendung von Mono) mit Ubuntu Bash unter Windows 10 ausführen kannst, ohne eine virtuelle Maschine zu benutzen? Siehe: [Bash unter Ubuntu unter Windows] (https://msdn.microsoft.com/en-us/commandline/wsl/about). –

Antwort

4

Sie scheinen den Scala-Compiler namens fsc vor fsharp aufgerufen zu haben - siehe hier zB error: expected class or object definition für eine Frage mit dieser Fehlermeldung, die keine Fehlermeldung vom F # -Compiler ist.

Unter Linux wird der F # Compiler fsharpc auf vielen Distributionen genannt, um dieses Problem zu vermeiden.