编译hotspot时出现的错误,求高手解答!
忍苦 2017-08-26 11:07:03 最近在阅读周志明的《深入理解JAVA虚拟机》,在第一章的时候成功的编译了openjdk,但是接下来编译hotspot的时候出现了一些些问题~。本人使用virtualbox的虚拟ubuntu系统进行编译的。
这是我的shell脚本
#!/bin/bash
export LANG=C
export ALT_BOOTDIR=/usr/java/jdk1.6.0_45
export ALLOW_DOWNLOADS=true
export ALT_OUTPUTDIR=/usr/jvmbuild
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
BUILD_DEPLOY=false
BUILD_INSTALL=false
export ALT_OUTPUTDIR=/usr/jvmbuild
unset CLASSPATH
unset JAVA_HOME
cd make
DEBUG_BINARIES=true make jvmg jvmg1
然后再编译的过程中,出现的错误如下
rm -f libjvm.so.1; ln -s libjvm.so libjvm.so.1; \
[ -f libjvm_g.so ] || { ln -s libjvm.so libjvm_g.so; ln -s libjvm.so.1 libjvm_g.so.1; }; \
if [ \"\" = \"\" ] ; then \
if [ -x /usr/sbin/selinuxenabled ] ; then \
/usr/sbin/selinuxenabled; \
if [ $? = 0 ] ; then \
/usr/bin/chcon -t textrel_shlib_t libjvm.so; \
if [ $? != 0 ]; then \
echo "ERROR: Cannot chcon libjvm.so"; \
fi \
fi \
fi \
fi \
}
Linking vm...
heapRegionSet.o: file not recognized: File truncated
collect2: error: ld returned 1 exit status
/usr/bin/objcopy --only-keep-debug libjvm.so libjvm.debuginfo
/usr/bin/objcopy: 'libjvm.so': No such file
make[4]: *** [libjvm.so] Error 1
make[4]: Leaving directory `/usr/jvmbuild/linux_i486_compiler1/jvmg'
make[3]: *** [the_vm] Error 2
make[3]: Leaving directory `/usr/jvmbuild/linux_i486_compiler1/jvmg'
make[2]: *** [jvmg1] Error 2
make[2]: Leaving directory `/usr/jvmbuild'
make[1]: *** [generic_build1] Error 2
make[1]: Leaving directory `/openjdk/hotspot/make'
make: *** [jvmg1] Error 2
查了一下貌似是所谓的文件阻断?然后导致找不到libjvm.so?这个应该怎么解决呢?请求各路大神~