如何在Mono上使用F#?

48

我似乎找不到适用于Mono的编译器/插件。有这样的工具吗?

9个回答

34
  1. 前往此处并下载fsharp.zip文件。
  2. 解压缩并打开创建的文件夹。
  3. 打开终端并以root身份运行./install-mono.sh(在某些系统上,需要将该脚本中的换行符从CRLF转换为LF)。

这将提供基本功能,这意味着您将能够运行“mono fsi.exe”和编译的F#应用程序,如“mono myApp.exe”。

有用的提示:

  1. 创建编译器和F#交互式的脚本是有意义的,例如:

    /usr/local/bin/fsc

    #!/bin/sh exec /usr/bin/mono /usr/local/src/FSharp-1.9.9.9/bin/fsc.exe $@

    /usr/local/bin/fsi

    #!/bin/sh exec /usr/bin/mono /usr/local/src/FSharp-1.9.9.9/bin/fsi.exe $@

  2. F#交互式(fsi.exe)默认尝试引用System.Windows.Forms,因此需要在Mono中启用WinForms支持才能运行它。

  3. 在Xterm中使用fsi.exe比在Gnome终端中效果更好。


需要特定版本的Mono吗?我有2.0版,我想这很古老了,F#抱怨一些DLL文件缺失,特别是System.Windows.Forms... - Nels Beckman
3
@Nels说:“我几乎尝试了发布的每个FSI和Mono,但很少能让它们正常工作。现在,当我输入任何内容时,F# 2.0和Mono 2.8似乎都无法运行。” - J D
@Jon:我也是。有进展了吗? - Muhammad Alkarouri
@Muhammad:显然这是F#中的一个bug,我认为在他们的11月发布中已经修复了 http://blogs.msdn.com/b/dsyme/archive/2010/11/10/november-2010-f-2-0-free-tools-update.aspx - J D
@Jon:那我再试一次。非常感谢。 - Muhammad Alkarouri
@Muhammad:不,我刚刚尝试了最新的F# 2010年11月版本,它仍然以完全相同的方式出现故障。我不知道为什么。 - J D

18

供参考,现在有Linux (.deb 和 .rpm)软件包以及一个Mac OS X安装程序可供下载,网址为http://fsxplat.codeplex.com/。这将节省您手动复制文件和制作启动脚本的工作。


无法在Mono Develop 2.8上安装插件。 - rpattabi

14

5
你可以从微软下载F#压缩文件,然后运行(例如)“mono fsi.exe”。点击此处下载。

看起来这个链接已经失效了。 - epotter
已更新链接以指向最新下载。感谢提醒,@epotter。 - sblom

3
2019年,很多早期的回答都已经过时了。不再需要使用zip文件或类似的东西。
从Ubuntu 19.04版本开始,即“disco”,您现在可以使用以下命令安装软件包:
sudo apt-get install mono-complete fsharp

这将使你拥有F-sharp编译器,路径为/usr/bin/fsharpc

或者,如果你想要最新版本,可以添加Mono仓库并从那里下载软件包,具体方法请参考:

https://www.mono-project.com/download/stable/#download-lin


3

Piotr Zurek所说的基本上就是我在Ubuntu 9.04上使F#和mono正常工作所做的事情,以下是一些评论:

  1. 记得安装Mono的WinForm支持。否则你将无法启动fsi.exe。
  2. 必须以root权限运行./install-mono.sh(sudo ./install-mono.sh)。
  3. Gnome终端不适用于fsi.exe。请打开一个普通的xterm,并在其中运行fsi.exe。

1

1

1
如果您使用的是Ubuntu系统,请按照以下三个步骤进行操作。
  1. 这里下载并安装".deb"包。
  2. 运行以下命令:

    sudo apt-add-repository ppa:directhex/ppa 
    sudo apt-get update 
    sudo apt-get install monodevelop
    
  3. 启动 MonoDevelop。进入插件管理器,点击“库”>“语言绑定”>“F#”,进行安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接