clion调试 openjdk
1.下载oracle-jdk8
在编译 openjdk 时还需要一个 jdk 环境用以引导。
下载网站:
Java Downloads | Oracle
解压:
sudo tar -zxvf jdk-8u351-linux-x64.tar.gz -C /usr/local/jdk8/
环境变量:
vi /etc/profile
export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_351
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
验证:
source /etc/profile
java -version
2.下载openjdk8源码
下载链接:
https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-src-b04-14_jan_2020.zip
下载然后解压:
3.编译
安装gcc4.9 g++4.9:
ubuntu20比较新, 编译openjdk8需要安装老版本的编译工具
增加源
deb mirrors.dotsrc.org xenial main
deb mirrors.dotsrc.org xenial universe
sudo vim /etc/apt/sources.list
sudo apt update
安装
sudo apt-get install gcc-4.9
sudo apt-get install g++-4.9
配置多版本gcc控制
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 50
sudo update-alternatives --config gcc
下载依赖:
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev ccache
sudo apt-get install build-essential gawk m4 libasound2-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif-common ant
修改部分配置:
* 修改hotspot/make/linux/Makefile文件的第232行代码:
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% 5%
* 修改hotspot/make/linux/makefiles/gcc.make文件的第208行代码:
WARNINGS_ARE_ERRORS = -Wno-all
* 注释掉随着 jdk/src/solaris/native/java/net下的 PlainDatagramSocketImpl.c 和 PlainSocketImpl.c中映入的头文件(glibc 2.32 的发布,Linux 系统删除了sys/sysctl.h):
// #include <sys/sysctl.h>
给源码目录权限:
sudo chmod 777 -R openjdk
生成编译配置:
cd openjdk
./configure --with-target-bits=64 --with-debug-level=slowdebug --with-boot-jdk=/usr/local/jdk8/jdk1.8.0_351 --with-jvm-variants=server --with-extra-cflags=-Wno-all --with-extra-cxxflags=-Wno-all
编译:
export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
make all
编译完成:
编译完成后源码目录下面会对出一个 buid/linux-x86_64-normal-server-slowdebug 目录,images里面就有 jre 和 jdk 的镜像制品:
验证:
使用编译得到的 images/j2sdk-image/bin/java 可执行文件执行版本查看:
./java -version
新建一个测试目录 debug,创建 Test.java 文件,然后使用编译得到的 javac、java 可执行文件分别就行吧编译和执行:
clion调试 openjdk相关推荐
- 通过CLion 调试JDK源码
通过CLion 调试JDK源码 0. 简述 0.1 使用环境: 宿主机操作系统:Windows 10 专业版 虚拟机软件:VMware® Workstation 16 Pro 虚拟机操作系统:[ubu ...
- 编译jdk和使用clion调试jdk
前言 我们都知道java程序是运行在jvm虚拟机上的,jdk里面很多native方法的实现都是在jvm源码里面的.那么jvm是如何加载类,如何创建对象,线程同步的本质是什么?那些看不见的native方 ...
- 007 - 配置 Clion 调试显示 Qt 变量
配置 Clion 调试显示 Qt 变量 文章目录 配置 Clion 调试显示 Qt 变量 引言 尝试解决 配置 Lekensteyn's qt5printers KDevelop formatters ...
- CLion调试redis6源码
背景 clion使用cmake来管理编译redis源码,而redis源码本身使用原生的make,因此直接将redis源码导入clion无法直接运行,需要配置cmake. 写c程序大体步骤为: 1).用 ...
- clion调试出现optimized out
clion调试时候debug总是出现变量optimized out 解决方案: 修改CMakeLists: On high optimization levels, the compiler can ...
- clion开发php,如何在 Mac 上用 Clion 调试 php7 源码
一.背景 据2019年7月份的编程排行榜,php 依然在前10,表明了 php 还是世界上最好的语言.php 的优势很多,只要场景合适,在工作中能用就用了.为了更好的理解这门语言,这几天学习下 php ...
- windows11+wsl+clion调试srs
准备 srs git clone https://github.com/ossrs/srs.git 默认是SRS4.0Release的,这里我们也是使用此版本 wsl 个人感觉wsl在Windows1 ...
- 1009. clion调试段错误
1 debug模式编译源代码 2 由于项源码从硬件读取数据,多线程并行执行,故未设置断点,由程序自由运行 3 修改源码改正段错误,搞定
- 工具 | 使用 CLion 编译调试 MySQL 8.0
MySQL 源代码是基于关系模型理论的具体实现,是数据库理论与实践的结合. 阅读 MySQL 及相关工具的源代码,不仅是数据库研发人员的日常,也是 DBA 进阶的必经之路,全方位提高技术水平. 夯实原 ...
最新文章
- 剑指offer:二维数组中的查找python实现
- linux重装系统后 70-persistent-net.rules 不能删除解决
- JSTL 标签库详细介绍资料 .
- ajax后台重定向会返回什么_跳转,AJAX返回和重定向
- Sublime Text 3 快捷键总结(简洁版本)
- java 更改css_求助java正则表达式问题,我现在想用java程序操作我本地的a.css文件,并且对此文件里边的代码做更改。...
- 代码文件夹带有红色感叹号_接口测试平台代码实现7:菜单的开发
- Fiddler中常用的方法
- unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)
- http动态代理转socks5怎么获取?
- 极客日报:库克对话何同学:苹果很多功能来自中国消费者反馈;高通、微软、谷歌联合施压监管方:反对NVIDIA收购ARM...
- 游戏类型常见英文缩写和释义
- 宁德时代与戴姆勒卡车股份公司扩大全球合作伙伴关系
- 复合材料力学_桥桂琼编_西工大版
- 207最新android书籍,《最强Android书 架构大剖析》PDF(高清版)
- 黑白棋出现pass 的条件 java_JAVA黑白棋之学习感悟
- [JVM]了断局: JDK8默认配置.
- 电动汽车的结构及优势
- 科学计算机弧度,在线计算器
- vue使用javascript动态创建script - 动态引入外部js文件