ruby 怎么编译成可执行文件

Python011

ruby 怎么编译成可执行文件,第1张

你指的是在Windows平台吧。

编译成机器码的话就没遇到什么方案可用,但是打包成exe倒是有不少方案。

目前比较易用的是ocra:https://github.com/larsch/ocra

先安装:gem install ocra

然后:ocra script.rb 就能生成script.exe了

因为编译器只支持C/C++、Java,甚至有的支持javaScrpit和Pascal,就是不支持Python。让一直以来用惯了Python的我直吐血,于是今天痛定思痛还是熟悉一下Java,免得继续被虐。学习的过程中,看到这样一个争论“Java、Python谁是编译型语言,谁是解释性语言?”。我在网上查了很多资料,也结合了自己的理解,下面与大家分享一下。

总的来说,如今编译型语言、解释性语言的分界线不再那么明显,应该避免把语言简单归类为“编译型”和“解释型”。

我们最开始说C/C++是编译型语言,原因是相对于Ruby这样的解释性语言,C/C++需要通过编译器,把源代码编译成中间文件(.o和.obj),然后通过连接器和汇编器生成机器码,即一系列基本操作序列,可以直接让计算机执行。这些机器码也就是我们通常的exe文件

java非常好,再用上eclipse,爽歪歪!

速度嘛,的确比C/C++慢,没办法,人家C/C++是直接编译成机器码,而咱是编译成class文件,需要java虚拟机解释执行。

要说速度慢到哪里去也不至于。图像处理很费时吧,最近使用相同的算法处理相同的图像,C/C++所花的时间是java的一半而已。

优点:

1.自动回收内存

在C/C++中你敢这样写吗:

int

w

=

getWidth()

byte[]

data

=

new

byte[w]

2.

eclipse代码补全功能

需要什么打一下点,就什么可用的东西都列出来了,只要不是语法错误,没有引入需要的包,点一下红叉叉,自动导入。C/C++还要去查MSDN之类的东西,找头文件。

3.代码组织

类名、方法名、变量名一目了然,看一眼就大概明白是干什么的。C/C++中那些全大写,下划线等等乱七八糟的东西,看到就头晕。

5.指针,java中没有指针,避免了很多麻烦。

此处省略几万字……

缺点:

1.运行效率,这个咋没办法根C/C++比;

2.结构。我们有时候需要一个结构,但java中只有类。而且,比如要读取bmp文件,C/C++直接申明一个结构,然后直接把数据读到这个结构中,一行代码搞定。而java要读取文件中一个整数,不得不读4个字节,自己来拼成整数,虽然RandomAccessFile提供了readInt之类的方法,但是都是按BIG_ENDIAN读取的,没办法读取LITTLE_ENDIAN。

3.指针,虽然这是java的一个优点,但有时候也是它的缺点。某些时候我们真需要指针。而且还需要用负数做为索引访问一个指针的内容,而java中是不允许负数做为数组索引的