记一次在ubuntu上编译OpenJDK9源代码的过程
《深入理解Java虚拟机》第一章介绍了自己编译JDK,倒腾了半天,遇到的问题不少。这里写下在Ubuntu下编译OpenJDK9的操作过程。
前提
- 使用ubuntu 编译jvm
- 建议编译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
- 系统环境
- 编译器版本
编译的时候记得带上 --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++
十几分钟后完成,进入安装目录,查看版本: