2015-02-11 46 views
0

我有在SublimeText 2F#中SublimeText 2

[<EntryPoint>] 
let main argv = 
    printfn "Hello World" 
    0 

運行此F#一些麻煩,當我運行它,我得到的錯誤:

文件在圖書館或多個文件的應用程序必須從名稱空間或模塊聲明開始,例如「命名空間SomeNamespace.SubNamespace」或「模塊SomeNamespace.SomeModule」

相同的代碼運行在Visual Studio

+0

您是否嘗試添加一個名稱空間作爲消息提示? – Gustavo 2015-02-11 09:49:22

+0

我做了,根據Mau的建議下面,它爲我工作 – johnB 2015-02-11 10:07:43

回答

0

由於錯誤說很好,你的文件應該以一個模塊或命名空間聲明開始(除非它是最後一個文件傳遞給編譯器)。通常的做法是將main函數包含在一個恰當命名的模塊中。
例如,放:

module Main 

在文件的開頭。
您也可以選擇其他名稱。

+0

謝謝,這工作。你知道爲什麼我不需要在Visual Studio中這樣做嗎? VS在做不同的事情嗎? – johnB 2015-02-11 10:02:03

+0

SublimeText是否使用'fsc'編譯器?它爲構建生成了什麼命令行?單個文件或集合中的最後一個文件應該被允許爲「匿名」,VS通常會尊重這一點。 – Mau 2015-02-11 10:07:42

+0

不,它設置爲使用repl,fsi.exe。切換到fsc將生成一個可執行文件而不是運行它。 – johnB 2015-02-11 10:20:08