编译JDK、Clion调试配置
-
下载vsisual stuidio, 我用的2017, 直接下载社区版即可. i tell you / 官网都可以下载
-
选择工作组件
-
选择语言包,使用英文
-
安装位置必须设置英文, 不含空格
-
我安装完成的图
-
-
下载openjdk 17, 进入仓库: github.com/openjdk/jdk…, 点击code下载zip文件即可, 完成后解压到本地目录
由于编译jdk, 需要一个bootjdk, 直接去adopt 网站下载一个17的版本: adoptium.net/zh-CN/temur…
解压到指定目录
-
安装 cygwin, 直接进入官网安装最新版。 www.cygwin.com/ 安装的时候会让你选择一个镜像地址,可以选择阿里云。
-
对cygwin安装组件,打来cygwin的exe下载目录,打开cmd,执行下面命令:
./setup-x86_64 -q -P autoconf -P make -P unzip -P zip -
打开cygwin 命令行文件,知道怎么打开吧:
切换到解压后的jdk源码文件夹, cd: /cygdrive/e/c_project/jdk-jdk-17-35 我这里指的是切换到e盘, c_project/jdk-jdk-17-35 文件夹目录.
-
执行configure 命令
# --with-boot-jdk: 参数表示bootjdk 的路径 # --with-tools-dir: 指定visual studio C的库文件位置(需要指定到内部的Auxiliary), 我的是安装到d盘的VS 目录下的 ./configure --with-target-bits=64 --enable-debug --with-jvm-variants=server --with-boot-jdk=/cygdrive/d/environment/OpenJDK17U-jdk_x64_windows_hotspot_17.0.10_7/jdk-17.0.10+7 --with-tools-dir=/cygdrive/d/VS/VC/Auxiliary --disable-warnings-as-errors -
上面命令顺利的话,会得到下面结果, 表示配置通过
我的报了如下错误, 主要的错误是提示windwos kits 目录中有空格
由于visual studio 安装后默认 sdk 安装包就是windwos kits 目录, 安装过程中无法更改, 这里修改注册表
打开注册表,ctrl+f 搜索Windows Kits 目录, 首先找到你的Windows Kits 在哪个位置, 默认好像是在: C:\Program Files (x86)\Windows Kits, 也可能是在vs 安装时指定的目录里面, 我这里是在(我电脑之前被其他软件改过vs 的注册表,不知道默认是不是在这里)D:\Windows Kits\10, 需要选择全字匹配
搜索的第一处: 这里我直接简单处理删除中间的空格, 我的电脑有两处KitsRoot10
继续搜索:
直到搜索完毕后, 修改文件夹目录为WindowsKits, 再次执行configure 命令即可.
-
编译: 上一步完成后,直接执行make images
我这里没有出现任何错误: -
继续执行命令,用于构建目录索引, 供clion打开 make compile-commands 执行后,会在build 生成文件:
-
clion 打开 文件上面的json文件, 可能会提示下面,选择第二个, 没有就不管
-
正常打开项目, 右下角应该会展示一个进度条表示正在处理,如果没有展示可以去删除目标目录的.idea配置文件,重新导入试试
-
更改目标为源码根目录
-
配置clion 配置toolchain, 目录哪里选择vs的安装目录就行,其他会自动识别
配置custom build targets, (之前用cmake执行貌似不用配这个, 这次不知道为啥cmake 用了是灰色的启动按钮)
点击build 右边那个图标
-
配置启动参数:
-
打开java.c 打断点, 点击调试按钮,将会停住断点位置
输出如下:
idea debug native 函数, clion 分析native
-
随便创建一个demo, 使用编译后的jdk版本,保持一致执行,否则可能clion无法断点
执行到断点位置, jps 得到id
-
clion attach 进程, ctrl+ alt + f5, 搜索id, 选择lldb
-
在cion 下断点, 对应的native代码位置:
-
idea 放过执行, 代码将自动停到clion断点处:
编译过程相对还是比较顺利, 主要的问题还是出在visual studio 安装后目录文件名的问题
如果遇到其他问题可以自行百度, 或者查看shell 文件, 分析具体是哪里的问题
参考连接:
- windows kits注册表修改:blog.csdn.net/Nuo_nuoi/ar…
- idea 结合clion调试: www.youtube.com/watch?v=8Cj…
- 感谢网上的大佬指点迷津..