Java_ajvm虚拟机的下载及编译

ajvm是阿里的王智通用C语言及少量汇编代码编写的一个Java虚拟机原型,能够执行简单的java代码。

其结构简单,但却包含jvm的基本功能,因此我选来作为学习jvm底层基本实现机制的项目。


本人的环境: red hat 6.4虚拟机,intel i3的CPU

1.  源代码checkout:

ajvm项目的github下载地址: ajvm的github地址

2. 编译:

进入ajvm-master/ 目录,将Makefile中OBJS中的jvm.o修改为wvm.o,然后执行make命令

(怀疑这个项目后来又更新过,之前可能是jvm.c的源文件。额,既然现在已经叫wvm了,就都改成wvm了,况且w可能代表王的手字母,还是尊重作者意愿。)


如果编译成功,那恭喜!! 下面的篇幅请直接忽略...

如果执行 make 命令报如下的错:

trace.c:252: error: ‘REG_RIP’ undeclared (first use in this function)
make: *** [trace.o] Error 1
我去搜索了一下,是源文件中的 #define __USE_GNU 1 未生效。

于是直接将原本包含的头文件<ucontext.h>中的两段定义寄存器的结构体直接拷贝到目标源文件中(简单粗暴,此处汗颜...省略1万字...)

我的环境中,仍然报了下图中的错误,很明显,是重复定义了,将报错的这3个在其中的一个结构体中注释掉。



ok,编译就成功了。



好了,这就进入ajvm初探了。


参考:

[1] ajvm的github项目: https://github.com/cloudsec/ajvm

[2] R大的高级语言虚拟机版块,从回帖中了解到了ajvm项目: http://hllvm.group.iteye.com/group/topic/38476?page=2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值