【问题标题】:How to compile this code on ubuntu?如何在 ubuntu 上编译这段代码?
【发布时间】:2016-09-26 23:59:15
【问题描述】:

这可能是一个简单的问题,但我将其作为一个问题发布,因为我无法弄清楚。 stackoverflow 上的某处可能存在重复项,但我找不到任何内容。我正在使用 Visual Studio 代码在 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):“代码文件不以顶级模块声明或命名空间声明开头,文件的全部内容,包括任何本地模块,都成为隐式创建的顶级模块的一部分-与文件同名的级别模块,不带扩展名,首字母转换为大写。”

因此,不必将其声明为模块。但是,我也尝试过,但没有任何成功。

那么有人可以帮助我解决错误原因吗?

并进一步帮助我如何正确编译?

【问题讨论】:

  • 如果你在这里没有得到帮助;你也可以试试 askubuntu。
  • 兴趣:您是否知道您可以在 Windows 10 上使用 Ubuntu bash 执行 F#(使用单声道),而无需使用虚拟机。请参阅:Bash on Ubuntu on Windows

标签: ubuntu f#


【解决方案1】:

您似乎在 fsharp 之前调用了名为 fsc 的 scala 编译器 - 例如,请参阅此处 error: expected class or object definition 以获取有关该错误消息的问题,该错误消息不是来自 F# 编译器的错误消息。

在 Linux 上,F# 编译器在许多发行版上称为 fsharpc 以避免此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2020-08-10
    • 2011-04-04
    • 1970-01-01
    • 2012-07-06
    相关资源
    最近更新 更多