Ubuntu17.10下编译Openjdk8u

 

一开始笔者用的系统和软件版本都是最新的,导致编译了好几次都失败,最后找到解决的办法,现在记录一下编译及解决的方法

避免以后忘记

 

所用操作系统 Ubuntu17.10

所用软件及版本 make 3.8.1 gcc,g++ 4.8.0

操作步骤全是在root权限下执行

步骤一: 

  首先检查这几个软件的版本,低了也不行,太高也不行,版本号请对照上面说的,我就是因为版本号太高,而失败了好几次

    make -v

    gcc -v

    g++ -v 

    版本太高的自己降级

     make 降级方法:

      百度下载 make3.8.1.tar.gz

      解压  

      tar -zxvf make3.8.1.tar.gz

      cd make3.8.1

      ./configure 

      make

      make install

      export PATH=/usr/local/bin/make:$PATH

      source /etc/profile

      make -v

      按上述步骤,逐步执行

    gcc降级方法:
      apt install gcc-4.8

      update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40

      gcc -v

    g++同上,把gcc换成g++就行了

 

步骤二:

  然后下载Openjdk的源码  可以使用 Mercurial 拉取

    apt install Mercurial

    hg clone http://hg.openjdk.java.net/jdk8u/jdk8u

  然后进去拉取的源码的目录

    cd jdk8u

    bash ./get_source.sh

  等待执行完毕,再执行

    bash ./configure --with-debug-level=slowdebug

  执行这个的过程中,需要什么依赖,会提示你,把所有依赖装完就好了

  执行完毕后,继续执行

     make all

  然后不报错的话就编译成功了

  

  只要所有的依赖的软件的版本正确的话,报错也无非就是两种,

  第一种:

    make:*** [check_os_vesion]

    这句话的意思是 当前的Openjdk不支持当前的系统版本

    解决方法:

    在拉取的源码的根目录下执行下面的命令,如果没有vim编辑器请自行装载一个 apt install vim

      vi hotspot/make/linux/Makefile

    在里面找到下面这句话 添加上 4% 就行了,Openjdk8的话是在 228 行,其他的版本请自行查找

      SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%

    然后回到源码的根目录重新执行

      make all

  第二种:

    cc1plus: all warnings being treated as errors

    这句话的意思是把所有的警告全部当成错误处理.

    解决方法:

    也是在源码的根目录下执行

      vi hotspot/make/linux/makefile/gcc.make

    把207行的删除或者注释掉就行了,也就是下面这一句

      WARNINGS_ARE_ERRORS = -Werror

    然后回到源码的根目录重新执行

      make all

至此,编译Openjdk到此结束,有问题的可以给我留言,看到会尽快回复!

    

posted @ 2017-10-27 18:07  冰糖雪梨不甜  阅读(220)  评论(0编辑  收藏  举报