标签:
说我在单位的安装 Ubuntu 9.10 操作系统 Lenovo ThinkCentre M4000t 台式机上写完“也谈在 .NET 平台上使用 Scala 语言(上)”之后不久,就下班回家了。于是,我就在家里的安装
Windows Vista 操作系统的 Dell Inspiron 1520 本本上继续工作。首先就是启动 Sun Virtualbox 打开一个 Ubuntu 9.10 操作系统。而这个 Ubuntu 9.10 操作系统中尚未安装 Scala SDK 软件包。正好,我在上一篇文章中谈到:
那么,我们就来实践一下吧:
这就算安装好了 Scala SDK 。为了方便起见,我们在 ~/.bashrc 文件的最后加入以下内容:
1
2
3
4
5
|
SCALA_HOME= /opt/scala-2 .7.7.final
if [
-d "$SCALA_HOME/bin" ]
; then
PATH= "$PATH:$SCALA_HOME/bin"
fi
|
我们来检查一下安装效果:
很好,正确安装了 2.7.7 版本,并且 sbaz 工具也有了。那么,还等什么?赶紧安装 scala-msil 吧:
工具都齐全了,我们就可以开始干活了。首先,把上篇文章中的 dotnet.scala 稍做修改,如下所示:
1
2
3
4
5
6
7
8
|
import System.Console
object dotnet
extends Application
{
Console.WriteLine( "
Scala.NET: 欢迎光临" );
Console.WriteLine( "
OS Version: " +
Environment.OSVersion);
Console.WriteLine( "
CLR Version: {0} ( {1} )" ,
Environment.Version, Skyiv.RuntimeFramework.CurrentFramework);
Console.WriteLine( "Default
Encoding: " +
System.Text.Encoding.Default);
}
|
改动之处在于增加显示 RuntimeFramework 类的 CurrentFramework 属性,这个 RuntimeFramework 类在源程序代码在“.NET Framework CLR 版本检测”这篇文章中可以找到,这里就不重复给出了。
最后,就是 makefile 文件了:
所有的源代码都准备齐全了,总算可以用 make 命令来生成我们的目标了:
make 命令首先调用 csc (就是 gmcs 的别名) 来编译 RuntimeFramework.cs 以生成 RuntimeFramework.dll。
然后,再调用 scalac-net 以便从 dotnet.scala 生成 dotnet.msil 。注意,由于 dotnet.scala 调用了 RuntimeFramework.dll 中的类,所以需要加上 -Xassem-path RuntimeFramework.dll 参数,不然就会出错。
接着,再使用 cp 命令将 predef.dll 文件从 Scala 的库目录拷贝到当前目录。
最后,调用 ilasm 将 dotnet.msil 汇编为 dotnet.exe。
最终,程序的运行结果如下:
可以看到,dotnet.scala 程序调用了一个定义在 RuntimeFramework.cs 程序中的 RuntimeFramework 类的 CurrentFramework 属性来显示出 mono 的版本: Mono 2.4.2.3 。也就是,我们成功地实现了 Scala 语言 C# 语言混合编程。
版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。
也谈在 .NET 平台上使用 Scala 语言(中)
标签:
原文地址:http://blog.csdn.net/u013141940/article/details/47098877