树莓派上的MonoDevelop ARMv6

41

3
ARM架构版本编号与ARM核心编号不同。ARM11核心使用ARM架构v6。 - Clifford
请在Area51上关注Raspberry Pi提案。您可以将您的问题作为示例添加:http://area51.stackexchange.com/proposals/37041/raspberry-pi-hardware-and-software - iandotkelly
5
希望你不打算在这上面实际运行Monodevelop。当然,作为一个平台使用Mono没有问题,但你很难在仅有256MB的内存中安装X11环境,Monodevelop以及任何实际的代码编译。目标环境和开发环境是两个不同的事情。 - skolima
原始的RaspberPi 1和新的piZero都是ARMv6架构。 - Dan Leonard
4个回答

33

Mono项目支持ARM,因此应该能够在树莓派上构建和使用MonoDevelop。至少这是我所希望的!


2012-05-16

我昨天收到了我的树莓派(耶!),并确认可以使用Mono及其MCS编译器模块编译和运行.NET代码(我用C#进行了测试)。所有操作都是通过shell而不是GUI完成的。如果可能的话,让MonoDevelop IDE运行起来将是很棒的。

对于那些感兴趣的人,您可以输入以下命令安装Mono:

sudo apt-get install mono-complete

这也包括了MCS编译器模块,所以你可以简单地编译一个 .cs 文件:

mcs program.cs

然后像这样运行:

mono program.exe

12
只是想补充其他答案,它在Debian安装上运行良好,但由于缺少编译器支持,它尚不能在Raspbian安装上工作。更多信息可以在这里找到:http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=11634&start=25
引用似乎是最有见地的答案:
据我所知,Raspbian使用不同的“调用约定”,因此浮点数以不同的方式在CPU上“传递”。所有编译器都必须创建使用Raspbian调用约定的机器代码。对于使用GCC编译的软件来说,这不是问题,因为默认情况下它配置为使用该调用约定。
然而,当使用较少见的编译器(如mono CLI->机器代码即时编译器)时,事情还没有完全解决。mono JIT编译器显然对它编译的所有内容都使用旧的调用约定,因为还没有人在mono中实现新的调用约定。只要mono代码不调用一些非mono代码,这就没问题,但是一旦使用本地库,它就会崩溃。
其中的细节可能是错误的,但也许它总体上描述了问题。
编辑:只是为了让这一点清楚, “Raspbian调用约定”并不是专门为raspbian创建的。它与debian armhf以及(我想)任何其他使用armhf的linux相同。

6
你知道那件事是会“自动解决”还是需要有人来处理吗? - Scott Hanselman
@Scott 很抱歉,我不确定Mono现在的开发情况是怎样的。 - Adam Houldsworth
1
目前看来,Mono不再支持Raspbian(ARM硬浮点)。http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686123 - dodgy_coder

7
在树莓派上使用Mono是可行的,而且设置相对容易。以下假设您使用Debian。在MonoDevelop(或带有Mono库的Visual Studio)中创建应用程序,然后将其发送到树莓派上。一旦在树莓派上,它将正常运行。由于C#,.NET和JIT的特性,您不必进行“编译”,只需拥有可解释MonoDevelop生成的代码的运行时即可。我建议不要在树莓派自身上使用MonoDevelop进行开发,因为它对设备来说相当沉重。

这段内容摘自我的博客,提供了许多树莓派教程。

注意:当前可用的标准Mono运行时仅支持.NET 3.5,除非您自己从源代码进行编译。

所以,您想要开始为您的树莓派开发一些应用,但是您对编程的了解仅限于现代.NET语言,如VB.NET和C#。没问题!欢迎来到Mono世界,这是一个开源跨平台并兼容.NET框架的版本。通过使用开发IDE,例如Visual Studio或者更好的MonoDevelop,您可以生成在您的树莓派上运行的EXE文件。您需要做的就是在树莓派上安装Mono运行时。要做到这一点,我们输入以下几行代码。
sudo apt-get update

sudo apt-get install mono-runtime

如其他教程所述,第一行用于更新APT-GET软件包管理器,以确保其使用最新的源来下载软件包。第二行安装并准备运行时以供使用。就是这样。现在,要运行一个由Mono开发的EXE文件,只需在命令前加上单词“mono”,如下所示。
mono myprogram.exe 

0

3
回答应该包含不仅仅是对链接的引用,还应该包括链接内容的摘要说明,以防止参考网站关闭或者不需要点击链接即可了解其内容。 - M. Mimpen

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