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

避免以后忘记

所用操作系统 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. 区分Web服务器、HTTP服务器、应用程序服务器

    在学习前端的过程中.进程听到和看到web服务器.HTTP服务器.应用程序服务器,但一直不知道它们有什么区别,迷惑了好久,今天查看的很多博客,终于算是梳理通了,下面我就来总结一下它们的区别,顺别了解一些 ...

  2. 网页中这 10 种字体的运用方式,不会让人觉得 Low

    简评:字体特效非常多,有目的地选取合理的特效是让它们发挥效果的诀窍所在.好的字体排版是不需要辅助就能被识别的,否则这个设计是失败的. 本文转载自 UISDC,如需转载请联系他们. 对于设计师而言,在日 ...

  3. uC/OS-II 函数之消息队列相关函数

    上文主要介绍了信号量相关的函数,本文介绍消息队列相关的函数:OSQCreate()建立消息队列函数,OSQPend()任务等待消息函数,其他的消息函数. 消息队列介绍 消息队列是µC/OS-II中另一 ...

  4. 闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别

    闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别 函数最常见的形式是具名函数(named function): function foo(){ con ...

  5. 修改testng源码,添加beforeMethod和afterMethod中的日志到test中(可以不改源码,废弃)

    在使用testng生成报告的时候,只会记录test方法中的日志,但是一般会在beforeMethod.beforeTest.afterMethod.afterTest中做一下数据的处理,这里面的日志没 ...

  6. python之小记with open...as..上下文管理器

    之前在学习file文件对象是说过,open文件操作结束后要关闭文件,否则会一直占用资源.但是当出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行,文件无法关闭 with o ...

  7. 【算法笔记】B1049 数列的片段和

    1049 数列的片段和 (20 分)   给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, ...

  8. 线程局部存储空间 pthread_key_t、__thread 即 ThreadLocal

    https://www.jianshu.com/p/495ea7ce649b?utm_source=oschina-app 该博客还未学习完  还有   pthread_key_t    Thread ...

  9. TensorFlow模型转为caffe模型

    最近由于要将训练好的模型移植到硬件上,因此需要将TensorFlow转为caffe模型. caffe模型需要两个文件,一个是定义网络结构的prototxt,一个是存储了参数的caffemodel文件. ...

  10. springboot和quartz整合实现动态定时任务(持久化单节点)

    Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...