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

避免以后忘记

所用操作系统 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. 爬虫开发8.scrapy框架之持久化操作

    今日概要 基于终端指令的持久化存储 基于管道的持久化存储 今日详情 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的 ...

  2. 关键字的使用 pass break continue

    # ### 关键字的使用 # (1)pass 过 作用 作站位用的 if 5==5: pass i = 0 while i <5: pass #约定俗成,在循环里面什么也不行的情况下,给友好提示 ...

  3. 自己实现一个shell

    用C实现一个简单的交互式shell,要求:当用户输入一行命令时,识别程序名和参数并调用适当的exec函数执行程序,等待执行完成后给出提示符. exec函数实际上是六种以exec开头的函数,统称exec ...

  4. chromium 安裝 flash

    CentOS yum install chromium-pepper-flash Debian apt-get install chromium-pepper-flash archlinux pacm ...

  5. 条目二十四《当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择》

    条目二十四<当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择> 当效率至关重要时,应该在map::operator[]和map::insert之 ...

  6. leetcode-788-Rotated Digits(使用vector替代if else的逐个判断)

    题目描述: X is a good number if after rotating each digit individually by 180 degrees, we get a valid nu ...

  7. HTML-文本域属性设置

    1.设置文本域的字体 <TEXTAREA STYLE="font-size:9pt;font-family:verdana;color:#333333">输入内容< ...

  8. TX2之多线程读取视频及深度学习推理

    背景 一般在TX2上部署深度学习模型时,都是读取摄像头视频或传入视频文件进行推理,从视频中抽取帧进行目标检测等任务.对于大点的模型,推理的速度是赶不上摄像头或视频的帧率的,如果我们使用单线程进行处理, ...

  9. 设计模式 — 建造者(生成器)模式(Builder)

    考虑这样一种业务场景,我们构建一个业务对象,但是这个业务对象及其复杂.为了代码的根号的可读性,我们会把这个对象的构建过程根据精密联系的程度来拆分成几个类来完成.最后再放到一起使用来生成复杂对象.这个业 ...

  10. Form Authentication

    1.创建登陆的控制器和视图,实现登陆基本功能 2.创建视图模型,并在Action里面引用. 3.创建一个接口两个类,那个IUserPricipal接口要实现IPrincipal接口,UserPrici ...