2016-09-26 65 views
2

這可能是一個簡單的問題,但我把它作爲一個問題發佈,因爲我無法弄清楚。在這裏可能有一個重複的地方在stackoverflow,但我找不到任何。我正在使用Visual Studio代碼在ubuntu上編寫代碼。如何在ubuntu上編譯這段代碼?

這是我test.fs文件的內容:

open System 
(*print*) 

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

main() 

我想編譯它在終端上。我知道編譯器就在那裏,因爲我可以從它運行一個交互式的F#會話。我得到這個錯誤對於每一行(4)

error: expected class or object definition 

這使我相信,這是一個命名空間/包的問題,​​我相信這是在F#的模塊。然而,我發現這個(https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/modules):「代碼文件不是以頂層模塊聲明或命名空間聲明開始,文件的全部內容(包括任何本地模塊)都成爲隱式創建的頂級模塊的一部分與文件具有相同的名稱,沒有擴展名,第一個字母轉換爲大寫。「

因此,它不應該被聲明爲一個模塊。不過,我也嘗試過,沒有任何成功。

那麼有人可以幫助我什麼可能是錯誤原因?

還可以進一步幫助我如何讓這個編譯正確?

+0

如果你沒有得到幫助,你也可以試試askubuntu。 – GhostCat

+0

感興趣的:你知道嗎,你可以在沒有使用虛擬機的情況下在Windows 10上使用Ubuntu bash來做F#(使用單聲道)。請參閱:[在Windows上的Ubuntu上的Bash](https://msdn.microsoft.com/zh-cn/commandline/wsl/about)。 –

回答

4

您似乎在fsharp之前調用了名爲fsc的scala編譯器 - 有關該錯誤消息的問題(例如,請參閱此處的error: expected class or object definition),該問題不是來自F#編譯器的錯誤消息。

在Linux上,F#編譯器在許多發行版上被稱爲fsharpc以避免此問題。