kvm 源码版本1.1
j2me_cldc-1_1-fcs-src-winunix.zip
编译kvm需要
cygwin包含gnumake
jdk1.3.1
vc6.0
cygwin可从官方网站去下载,缺省时的下载选项不含有make,需要自已手工选。
可在“Devel”结点中将“make: The GNU version of the 'make' utility”选项选中。
如果是已下载好的安装文件可选“Install from Local Directory”。jdk需要使用1.3.1版,比如1.3.1_20,这个在sun网站上能下到。
安装好cygwin后可编译Cygwin.bat为如下内容,主要是加入了jdk的设置,如果在"我的电脑环境"变量中已进行更改也是等同的。
Cygwin.bat
@echo off
set JAVA_HOME=D:/app/Java/jdk1.3.1_20
SET PATH=%SystemRoot%/system32;%JAVA_HOME%/BIN;%PATH%
SET CLASSPATH=.;%JAVA_HOME%/LIB;
d:
chdir d:/cygwin/bin
bash --login -i
如果vc安装时没有在系统中注册命令工具还可加入如下行,以便vc的cl.exe link.exe能被找到。
D:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT
可将kvm源码包展开,应该能看到如下内容
<api>
<build>
<jam>
<kvm>
<tools>
<bin>
<doc>
copyright.html
index.html
运行cygwin.bat启动cygwin。
cd 到源代码所在的工具路径,如:
cd E:/user/kvm_dev/j2me_cldc/build/win32
路径中的'/'全部都要换成'/',以便cygwin的bash能识别
cd build/win32
执行make
可能会产生如下错误
link: invalid option -- o
Try `link --help' for more information.
make[1]: *** [preverify.exe] Error 1
make[1]: Leaving directory `/cygdrive/xxxx
/build/win32'
make: *** [all] Error 1
将cygwin目录下的link.exe换成别的名字,只要调用不到就成。D:/cygwin/bin/link.exe --> xxx.exe
再次执行make
最终可在j2me_cldc/kvm/VmWin/build目录中看到编译的结果kvm.exe
其实在命令行进行编译最主要的目的就是生成以下这两个.c文件。
ROMjavaWin.c
nativeFunctionTableWin.c
此后可用 j2me_cldc/kvm/VmWin/build目录下的vc式程来编译kvm核心的代码了。