MonoDevelop会编译到 ARMv6,主要是为了让它在我的Raspberry Pi上运行吗?
我注意到Debian 可以在 Raspberry Pi 上运行,并且 Debian 有一组 Mono 驱动程序。
那么这是否意味着我们将能够在 Mono 中进行开发?
MonoDevelop会编译到 ARMv6,主要是为了让它在我的Raspberry Pi上运行吗?
我注意到Debian 可以在 Raspberry Pi 上运行,并且 Debian 有一组 Mono 驱动程序。
那么这是否意味着我们将能够在 Mono 中进行开发?
Mono 项目支持 ARM ,因此应该能够在 Raspberry Pi 上构建和使用 MonoDevelop。至少这是我所希望的!
2012-05-16
我昨天拿到了我的 Raspberry Pi(耶!)并且可以确认可以使用 Mono 及其 MCS 编译器模块编译和运行 .NET 代码(我用 C# 测试过)。这一切都是通过 shell 而不是 GUI 完成的。如果可能的话,让 MonoDevelop IDE 运行会很棒。
对于那些感兴趣的人,您可以通过键入以下内容来安装 Mono:
sudo apt-get install mono-complete
这还包括 MCS 编译器模块,因此您可以简单地编译一个 .cs 文件:
mcs program.cs
并像这样运行它:
mono program.exe
只是添加到其他答案的注释,它在 Debian 安装上运行良好,但由于缺少编译器支持,在 Raspbian 安装上还不能运行。更多信息可以在这里找到:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=11634&start=25
引自似乎是最明智的答案:
据我了解,Raspbian 使用不同的“调用约定”,因此浮点数以不同的方式在 CPU 上“传输”。所有编译器都必须创建使用 Raspbian 调用约定的机器代码。使用 GCC 编译的软件没有问题,因为它默认配置为使用该调用约定。
但是,当使用不太常见的编译器(如 mono CLI -> 机器码即时编译器)时,事情还不太正常。mono JIT 编译器显然对其编译的所有内容都使用旧的调用约定,因为还没有人在 mono 中实现新的调用约定。只要单声道代码不调用某些非单声道代码,但只要您使用本机库就会中断,这很好。
这里的细节可能是错误的,但也许它描述了一般的问题。
编辑:为了清楚起见,“Raspbian 调用约定”并不是专门为 raspbian 创建的。它与 debian armhf 和(我认为)任何其他使用 armhf 的 linux 相同。
Raspberry Pi 上的 Mono 是可能的,而且设置起来相当容易。以下假设您使用的是 Debian。在MonoDevelop(或带有 Mono 库的Visual Studio )中创建您的应用程序,然后将其发送到 Raspberry Pi。一旦在 Raspberry Pi 上,它将作为标准运行。由于 C#、.NET 和 JIT 的性质,您不必像这样“编译”,只需使用运行时来解释 MonoDevelop 生成的代码。我会尽量不使用 MonoDevelop 在 Raspberry Pi 上进行开发,因为它对设备来说相当重。
这取自我的博客,该博客提供了许多 Raspberry Pi 教程。
注意:当前可用的标准 Mono 运行时仅支持最高 .NET 3.5,除非您自己从源代码编译。
因此,您想开始为您的 Raspberry Pi 开发一些应用程序,但您的编程知识仅限于现代 .NET 语言,例如 VB.NET 和 C#。没问题!!欢迎来到 Mono 的世界,它是 .NET 框架的开源跨平台兼容版本。通过使用开发 IDE,例如 Visual Studio 甚至更好的MonoDevelop,您可以生成将在您的 Raspberry Pi 上运行的 EXE 文件。您需要做的就是在 Raspberry Pi 上安装 Mono 运行时。为此,我们输入以下行。
sudo apt-get update
sudo apt-get install mono-runtime
正如在其他教程中提到的,第一行用于更新 APT-GET 包管理器,以确保它使用最新的源来下载你的包。第二行安装并准备运行时以供使用。而已。现在要运行 Mono 开发的 EXE 文件,只需简单地在命令前加上单词“mono”,如下所示。
mono myprogram.exe
2013 年笔记 --- F# 遇见树莓派