background image

    ../../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 目录