最近有网友看了我的以前转载的一篇文章(http://blog.csdn.net/chief1985/archive/2008/03/18/2195282.aspx),向我要cldc kvm里面的两个文件,我以前的这个不知道到什么地方了,所以我就打算重新编一下。整体的编译的步骤参考了http://tangl99.spaces.live.com/blog/cns!F8F17FFBEED1777A!156.entry和http://htqx.javaeye.com/blog/169624,具体如下:
1.下载cldc jvm的源码。现在sun上面好像没有下载了,我是在csdn上下载的(http://download.csdn.net/source/1385397)。
2.打开cygwin的命令行
3.我不想在命令行设置PATH,我也不想设置vs的编译环境,所以我的办法是改变makefile文件,一共改了4个文件,其中两个是编译java保存,两个是编译c出错才改的。
编译c的makefile主要改动为
CC= "/cygdrive/C/Program Files/Microsoft Visual Studio 9.0/VC/BIN/cl.exe"
LD= "/cygdrive/C/Program Files/Microsoft Visual Studio 9.0/VC/BIN/link.exe"
LIBS= user32.lib gdi32.lib kernel32.lib wsock32.lib
CPPFLAGS = -DWIN32 -I$(TOP)/kvm/VmCommon/h -I$(TOP)/kvm/VmWin/h /
-I$(TOP)/kvm/VmExtra/h -I$(TOP)/jam/h /I "C:/Program Files/Microsoft Visual Studio 9.0/VC/ATLMFC/INCLUDE" /I "C:/Program Files/Microsoft Visual Studio 9.0/VC/INCLUDE" /I "E:/Program Files/Microsoft SDKs/Windows/v7.0/include" /MT
CFLAGS= -nologo $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS)
DEBUG_FLAG= -Zi -Od
OPTIMIZE_FLAG= -Ox
FP_OPTIMIZE_FLAG=
OUTPUT = -Fo
LINKER_OUTPUT = -out:
LDFLAGS = -libpath:"C:/Program Files/Microsoft Visual Studio 9.0/VC/ATLMFC/LIB" -libpath:"C:/Program Files/Microsoft Visual Studio 9.0/VC/LIB" -libpath:"E:/Program Files/Microsoft SDKs/Windows/v7.0/lib"
编译java的改动就是将javac换成javac –source 1.4
JAVAC =javac -source 1.4
4个文件在我机器上的位置为
D:/project/j2me_cldc_kvm/api/Makefile
D:/project/j2me_cldc_kvm/tools/jcc/Makefile
D:/project/j2me_cldc_kvm/kvm/VmWin/build/Makefile
D:/project/j2me_cldc_kvm/tools/preverifier/build/win32/Makefile
4.编译完成,会在D:/project/j2me_cldc_kvm/kvm/VmWin/build生成一个kvm.exe,我还没跑过。
为了编译大家直接使用,我将所有文件上传到我的csdn的下载频道(http://download.csdn.net/source/1631201),需要的注意修改makefile里面的路径。
另外,上面的-libpath:"E:/Program Files/Microsoft SDKs/Windows/v7.0/lib"的来源为使用vs的编译环境时(在命令行敲%comspec% /k ""C:/Program Files/Microsoft Visual Studio 9.0/VC/vcvarsall.bat"" x86),通过在命令行敲set,可以看到INCLUDE和LIB目录,这些目录就是从这里来的。