../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to
incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:285: error: dereferencing pointer to
incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:286: error: dereferencing pointer to
incomplete type
../../src/linux-arm/javavm/runtime/segvhandler_arch.c:294: error: dereferencing pointer to
incomplete type
修改 segvhandler_arch.c 文件
gedit ../../src/linux-arm/javavm/runtime/segvhandler_arch.c
修改
#define ucontext asm_ucontext
#include <asm/ucontext.h>
为
//#define ucontext asm_ucontext //注释掉这句
#include <ucontext.h> //去掉 arm/
九、再编译
make
编译成功!
ls 可以看到在当前目录有
bin lib testclasses.zip
附注:运行时如有报错:
Java VM panic: AAPCS calling convention used; compilation must use -DAAPCS
然后,如果不在 GNUmakefile
“
之中添加 CVM_DEFINES += -DAAPCS ” 这一行,就会在
mini2440 的 linux
中执行 ./cvm -cp ../testclasses HelloWorld 语句时,出现以下错误:
Java VM panic: AAPCS calling convention used; compilation must use -DAAPCS.
所以除了要在 GNUmakefile
之中,修改 USE_AAPCS ?= false
为 true
, 还要
在 CVM_DEFINES += 这一句后面添加上 -DAAPCS
修改完上面的内容后,要先执行 make clean && make distclean
,最后 再执行 make
十、测试
1)、拷贝上面三个文件与文件夹到开发板/home/j2me 目录