测试 Mono 安装

简介: 测试 Mono 安装 为了测试核心编译器(mcs)和运行时(mono),应该创建一个简单的程序并编译它。可以在喜欢的任何文本编辑器中创建程序。这里采用一种快速而简陋的方法创建该文件(虽然没有任何格式化),从终端提示符中运行下列命令(都在一行中): $ echo 'class X { static void Main () { System.Console.Write("My first          mono app worked!\n");} }' > example.cs。

测试 Mono 安装

为了测试核心编译器(mcs)和运行时(mono),应该创建一个简单的程序并编译它。可以在喜欢的任何文本编辑器中创建程序。这里采用一种快速而简陋的方法创建该文件(虽然没有任何格式化),从终端提示符中运行下列命令(都在一行中):

$ echo 'class X { static void Main () { System.Console.Write("My first          mono app worked!\n");} }' > example.cs

该命令创建一个名为 example.cs 的 C# 源文件(也可从下面的 下载 部分下载该文件 example.cs 和可执行文件 example.exe。(注意,如果使用 Linux 可直接使用 bash 提示符,如果使用 Windows 则需要从开始菜单中调用 Mono 命令提示符。)

要测试编译器创建可执行文件的能力,可输入下面的命令:

$ mcs example.cs

这样将生成名为 example.exe 的二进制文件。要运行它来测试运行时,可使用该命令:

$ mono example.exe

如果一切正常,就会在控制台中看到“My first mono app worked!”字样。

图 1. 正常运行的结果

 

事实上,可以将得到的可执行文件复制到其他系统上,比如运行 Windows 的系统上,无需修改就可以执行。

 

使用非 Mono 库的代码

使用 Mono 平台更有说服力的原因是能够使用已有的、可能不属于 C# 库的 C# 代码。下面是这样的一个例子(也可以从下面的 下载 部分下载清单 2 PInvokeExample.cs 和可执行文件 PInvokeExample.exe)。

提供这种能力的机制是 Platform Invocation Facility(缩写为 pinvoke)。

清单 2. 使用 Platform Invocation Facility
/* Platform Invocation Facility Example
   This code is intended to illustrate P/Invoke.
   For out purposes we will access a c shared library.
*/
using System;
// This is a lot of the magic!
using System.Runtime.InteropServices;
/* Class illustrates pinvoking existing c library code */
public class PInvokeExample
{
   /* Notifying the runtime that we need an
          additional mathematics library, libm.so */
   [DllImport("libm")]
   /* Here we define the external function we will
           be using from the library,
           You must declare these methods to be static.
      The function signature you provide must match the
           signature in the external library!
   */
        static extern double sqrt ( double element );
   public static void Main ()
   {
      Console.WriteLine("The square root of 100.0 is {0}.", sqrt(100.0));
   }
}

从上述简化的代码中可以看出,只需要告诉 Mono 编译器使用什么库(在 DLLImport 一行中完成)并提供要使用的函数的原型。如果在 Linux 系统上编译这个类,控制台将显示正确的结果。

目录
打赏
0
0
0
0
13
分享
相关文章
下载mono太慢怎么办?
下载mono太慢怎么办?
962 0
开始mono开发
使用mono框架开发android程序,第一步当然是构建开发环境,严格意义上说是使用 mono for android开发android程序。 参考Mono for Android安装配置破解  mono for android官网上有一个一键安装包,但是安装不是很方便。
1754 0
艾伟:在Mono平台开发前你应该知道
  在Mono平台开发前应该做的第一个事情就是,调整好心情,降低期望值:   对于Linux本地C程序员而言,由于习惯了疯狂和有魔力的本地C程序员开发,因此对于Mono提供的诸多限制可能不太满意。大体而言,Mono和.Net程序一样,属于框架开发的范畴,对于框架开发,最好在框架规定的范围内工作,否则会陷入孤立无缘的境地。
1036 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等