终于成功编译出"openjdk-7-fcs-src-b147-27_jun_2011"。
把编译过程及遇到的问题总结一下。
编译过程
系统是"ubuntu-10.04.3-desktop-i386",原来使用的是Fedora14,但是在编译过程中,出现缺包现象(下面会介绍)。
- 开放22端口
- 执行apt-get install build-essential(安装gcc, g++, make,这个是完整的编译环境)
- 其他包 “binutils、libasound2-dev、libcups2-dev、gawk、libmotif-dev、libxrender-dev、xorg-dev、x11proto-print-dev、m4、xprint、xutils-dev”。这些包的作用这里有介绍。
- 安装jdk1.6、ant
- 执行 export LANG=C ALT_BOOTDIR=JAVA_HOME ALT_JDK_IMPORT_PATH=JAVA_HOME ANT_HOME=ANT_HOME //结束后可以echo测试一下。
- 可选项:BUILD_JAXWS=false BUILD_JAXP=false(不编译这两个模块,若不想编译其他模块,使用用类似方法)
- make sanity测试
- make
- 编译成功的话,熟悉的JDK目录就出现在“/openjdk/build/linux-i586/j2sdk-image”
遇到的问题
- "/usr/bin/ld: cannot find -lstdc++ ln: accessing `libjvm.so.1': Too many levels of symbolic links" 这个问题出现了n次,后来在论坛上得到版主的耐心指点,原来是gcc安装不完整。我使用Ubuntu系统,执行上2的命令,然后编译完成。
- /bin/cp: cannot stat `/usr/local/freetype-2.4.6/bin/libfreetype.so': No such file or directory:如果按照上面的“编译过程”安装包,就不必要指定freetype2,它们会作为依赖下载。
补充
有用的链接
- BuildRequirements
- The Open Road: Building the JDK
- 在XUbuntu 10.10上以JRL源码构建Oracle JDK 6 update 23(版主的博文)
- 还有openjdk自带的README-builds.html
openjdk自带有nb编译帮助文档,貌似很有用,正在研究中。