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

避免以后忘记

所用操作系统 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到此结束,有问题的可以给我留言,看到会尽快回复!

    

Ubuntu17.10下编译Openjdk8u的更多相关文章

  1. ubuntu15.10下编译安装wine1.8 rc4

    ubuntu15.10下编译安装wine1.8rc4 Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Li ...

  2. Ubuntu17.10 下配置caffe 仅CPU i386可以直接apt install caffe-cpu,但是怎么运行mnist代码我懵逼了

    Ubuntu16.04下配置caffe(仅CPU)  参考:http://blog.csdn.net/zt_1995/article/details/56283249   第二次配置caffe环境,依 ...

  3. Ubuntu 14.10 下编译Hadoop2.4.0

    在http://www.aboutyun.com/thread-8130-1-1.html 这里看到到,安装过程遇到了上面说的问题,所以将此文转载过来,以备不时之需,感谢此作者. 问题导读: 1.如果 ...

  4. Ubuntu17.10下启动Rancher

    1.安装Docker: 获取最新的docker安装包 wget -qO- https://get.docker.com/ | sh 2.启动docker后台服务: service docker sta ...

  5. ubuntu12.10下OpenFoam的编译

    最近在ubuntu12.10下编译OpenFoam,遇到一些问题,小记一下. 首先到官网下载源码包(我这里下载的是OpenFOAM-2.3.0.tgz,ThirdParty-2.3.0.tgz). 1 ...

  6. Solaris 10下Qt编译Oracle 10g驱动

    上回书讲到<Oracle 10g在Solaris 10中安装详解>,现在开始用Qt来编译下Oracle 10g驱动吧!这样就可以通过Qt程序联入Oracle数据库了! Oracle的环境变 ...

  7. 【转】ubuntu 11.10(32位系统)下编译android源码

    原文网址:http://www.cnblogs.com/dwayne/archive/2011/11/16/2251734.html 本文介绍在ubuntu 11.10系统下编译android 2.3 ...

  8. Ubuntu 11.10下GRUB 2 1.99版编译安装笔记

    Ubuntu 11.10下GRUB 2 1.99版编译安装笔记 以下的安装笔记,都是QLi自己学习grub2 时,所整理的,还是新手,有错误的话,请大家帮忙就别提出来了. 最新版grub V1.99官 ...

  9. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

随机推荐

  1. Android应用-底部导航栏的使用

    目录 1. 设计底部导航栏页面 1.1. 创建必须的文件夹 1.2. 设计主页面 2. 设计逻辑函数 3. 项目展示 底部导航栏是基于Bottom Navigation Bar 插件使用的 这个插件包 ...

  2. python列表重复判断

    import random import string n = 0; while n<10: str_source = string.ascii_letters + string.digits ...

  3. [ActionScript 3.0] 运用Color类interpolateColor静态方法绘制渐变色

    以下类可直接作为文档类测试,效果如图: package { import fl.motion.Color; import flash.display.GradientType; import flas ...

  4. Intellig IDEA 搭建spring boot 热部署

    在pom中直接引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...

  5. python学习,day3:示例,进度条

    # coding=utf-8 # Author: RyAn Bi import sys,time for i in range(50): sys.stdout.write("#") ...

  6. 三种实现日志过滤器的方式 (过滤器 (Filter)、拦截器(Interceptors)和切面(Aspect))

    1.建立RequestWrapper类 import com.g2.order.server.utils.HttpHelper; import java.io.BufferedReader; impo ...

  7. css3 实现 tooltip

    /* START TOOLTIP STYLES */ [tooltip] { position: relative; /* opinion 1 */ } /* Applies to all toolt ...

  8. Python——内部参数对外部实参的影响

    无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部 ...

  9. 如何在vue中请求本地json文件

    1..修改webpack.base.conf.js 文件中添加'/static': resolve('static'),如下所示,此时存放于static的json文件就可以通过/static/xxx. ...

  10. 同时安装Python2和Python3,如何兼容并切换使用详解

    由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼 ...