记一次在ubuntu上编译OpenJDK9源代码的过程

《深入理解Java虚拟机》第一章介绍了自己编译JDK,倒腾了半天,遇到的问题不少。这里写下在Ubuntu下编译OpenJDK9的操作过程。

前提

  1. 使用ubuntu 编译jvm
  2. 建议编译jdk 9 而不是jdk8 , jdk8 依赖 jdk7 目前jdk7需要手动下载

  • 安装依赖包

sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev -y sudo apt-get install libfreetype6-dev libasound2-dev ccache -y libcups2-dev -y

  • 系统环境

img

  • 编译器版本

img

编译的时候记得带上 --disable-warnings-as-errors

安装过程的时候,出现过一次错误:

error: left operand of shift expression ‘(-1 << 28)’ is negative [-fpermissive]

  • 解决方案

在编译的时候添加参数:CFLAGS += -fpermissive ,这个方案没解决了我的问题。

后来在 stackoverflow 上有人说编译器版本高了,我抱着试一下的心态居然解决了这个问题。

编译器降版本操作:

sudo apt-get install -y gcc-4.8

sudo apt-get install -y g++-4.8

cd /usr/bin

sudo rm gcc sudo ln -s gcc-4.8 gcc

sudo rm g++ sudo ln -s g++-4.8 g++

十几分钟后完成,进入安装目录,查看版本:

img