Clion导入OpenJDK8源码阅读(支持函数跳转)
本文环境基于Ubuntu 20.04
一、准备工作
1.1 下载OpenJDK8源代码
本人是通过AdoptJDK的github仓库下载的,AdoptJDK基本可以理解为OpenJDK,因为OpenJDK的仓库太难找了,下这个是一样的。
1.2 安装JDK7
JDK的编译需要用到上一个版本的JDK,我们这里要编译JDK8的话就需要安装JDK7。
这里你可以选择用Oracle提供的JDK7安装包,或者从github下载
1.3 去掉环境变量中的JAVA_HOME
这是文档的要求,咱也不知道为啥,照做就是了,最终的要求就是命令行输入java -version提示命令不存在
二、开始编译
2.1 配置
进入OpenJDK8根目录,找到这个文件~/jdk8u/hotsport/make/linux/makefiles/gcc.make,将下边这行注释掉,不然警告会变成错误导致编译失败
#WARNINGS_ARE_ERRORS = -Werror
然后执行下列命令
bash ./configure --with-boot-jdk=/home/iceberg/Program/Java/openjdk-1.7.0 --enable-debug --with-jvm-variants=server
--with-boot-jdk指的是你JDK7的地址。
更多的参数配置,请参考官方的编译文档
然后控制台就开始疯狂输出信息,中途会遇到很多库的缺失,但是都会有提示告诉你应该怎么做,比如下边这种
大部分提示都是正确的,但是上图是错的,问题就在于libX11-dev的X应该是小写,把这里改了就对了。
然后就是apt install完之后继续./configure,一直循环,知道出现下图,就表示配置成功了
2.2 安装compiledb
原因和安装步骤详见这篇文章
2.3 编译
执行下列命令
compiledb make JOBS=8 all
JOBS=8表示八核编译,根据你的实际情况修改
2.4 测试
编译完成后,进入build/linux-x86_64-normal-server-fastdebug/jdk/bin/java目录,运行
./java -version
能看到消息提示,则编译成功
三、使用Clion导入
直接open整个OpenJDK文件夹即可,等待导入完成之后就可以开始愉快的阅读了~
理论上来说我们也是可以通过Clion调试JVM源码的,具体步骤可以参考这里,整体流程都是一致的。
我配置了一下发现是可以进入断点的,但是行数似乎有点不对,由于调试JVM对于我来说没什么卵用,所以这里就不继续尝试了,有搞定的朋友欢迎留言~
参考文章:
1、http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
2、https://zonghaishang.github.io/2018/10/26/Ubuntu18.0.4.1编译openjdk8/index.html
以上是 Clion导入OpenJDK8源码阅读(支持函数跳转) 的全部内容, 来源链接: utcz.com/z/517399.html