windows7 编译hotspot

最近想要学习一下jvm源代码,想从编译jvm 源码开始,于是各种准备,其中 重重辛酸,特此写文纪念,也希望能帮助到想要编译hotspot源码的同学。

首先吐槽一下,编译工作经历很长时间,感谢各位大神之前的分享,才能使本次编译成功执行。

参考文章:

 https://www.jianshu.com/p/e85f93cc74cb

https://www.cnblogs.com/lighten/p/5906359.html

https://blog.csdn.net/tangyongzhe/article/details/53576097

https://github.com/codefollower/OpenJDK-Research/issues/1

http://05935.com/bok/4456722/

https://my.oschina.net/langxSpirit/blog/1624428

1、环境介绍

 windows7 64位

openjdk8:下载页面 https://download.java.net/openjdk/jdk8/ ,下载地址需要简单修改一下,参考  (https://blog.csdn.net/baidu_19473529/article/details/76268765?locationNum=2&fps=1

https://download.java.net/download/openjdk/jdk8/promoted/b132/openjdk-8-src-b132-03_mar_2014.zip

cygwin:安装参考 上面文章简述,再次不在详细列出

freetype: 最好是2.8以上

visuo studio 2010 :最好是英文版,中文版 有坑,下载参考 https://blog.csdn.net/huohuanyu1/article/details/73291800,这个是中文版

jdk:我本地是 jdk8 1.8.0_71-b15

编译命令:bash ./configure --with-freetype=/cygdrive/e/dev-program/freetype --with-boot-jdk=/cygdrive/e/dev-program/java8/jdk -with-target-bits=64 --with-jvm-variants=server --with-debug-level=release

路径需要根据你自己安装的目录修改

2、安装过程

这儿我就不在详细列出,参考文章已经很详细了

3、坑

参考文章 列出了很多坑,大部分是在 配置的过程中需要修改的,如果遇到可参照文章修改,我在配置的过程 参照文章能正常通过,我这儿列出 几个我经历的难题

3.1 make all 过程出现 no rule to make target '-'  needed by ***spec.gmk

这个坑 困扰了我一个多星期,网上各种搜索,没有答案,使用 make all  LOG=trace 追踪,限于对 make的了解较少,没能解决到问题。开始追踪路径以为是 编译过程环境问题,后来看到 在网上参考一个文章最终解决,但是具体原因 还不清楚。

文章地址 :http://openjdk.5641.n7.nabble.com/Make-No-rule-to-make-target-td239507.html#a239510

解决过程:从 openjdk 官网上下载 的source 在配置过程 出现的问题,于是我从 http://hg.openjdk.java.net/jdk8/jdk8 点击左侧的zip链接 下载了一个openjdk 的配置包,把从官网下载的 配置文件 common、make 文件夹替换掉,重新编译,然后make all 

3.2 visuo studio 中文版的坑

get_msc_ver.sh: line 65: [: ▒▒▒▒ 80x86 ▒▒ Microsoft (R) 32 λ C/C++ ▒Ż▒▒▒▒▒▒▒ 16: integer expression expected
/usr/bin/expr: syntax error

解决办法,参考 https://github.com/codefollower/OpenJDK-Research/issues/1

3.3 visuo studio 2010 跟本地的  .net framework  冲突

LNK1123:failureduringconversiontoCOFF
LINK:fatalerrorLNK1123:failureduringconversiontoCOFF:fileinvalidorcorrupt

NMAKE:fatalerrorU1077:"C:\progra~2\micros~2.0\vc\bin\amd64\link.exe":returncode"0x463"

Stop.

NMAKE:fatalerrorU1077:"cd":returncode"0x2"

Stop.

NMAKE:fatalerrorU1077:""C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\BIN\amd64\nmake.EXE"":returncode"0x2"

Stop.

make[3]:***[Makefile:217:generic_build2]错误2

make[2]:***[Makefile:167:debug]错误2

make[1]:***[HotspotWrapper.gmk:45:/cygdrive/e/hub/openjdk/jdk8u/build/windows-x86_64-normal-server-release/hotspot/_hotspot.timestamp]错误2

make:***[/cygdrive/e/hub/openjdk/jdk8u//make/Main.gmk:109:hotspot-only]错误2

解决办法,将 visuo studio  安装目录中的 vc2010\VC\bin\cvtres.exe 和vc2010\VC\bin\amd64\cvtres.exe 名字换掉,默认让编译程序使用系统 .net framework 的 cvtres.exe

至此,整个编译工作完成:

----- Build times -------
Start 2018-09-15 20:59:01
End   2018-09-15 21:54:57
00:01:51 corba
00:04:31 demos
00:06:31 docs
00:01:31 hotspot
00:06:01 images
00:01:19 jaxp
00:04:15 jaxws
00:28:34 jdk
00:00:04 langtools
00:00:48 nashorn
00:55:56 TOTAL
-------------------------
Finished building OpenJDK for target 'all'

由于我的机器性能较差,整个过程花了接近一个小时。

后续 调试 源码 参考文章 已列出,不在赘述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值