vs2010编译openjdk1.8源码

参考资料:

https://blog.csdn.net/lpwstr/article/details/78840188

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

https://blog.csdn.net/a510835147/article/details/73011498

vs2015与vs2010语法不一样,如果需要用vs2015编译jdk源码,则需要修改部分源代码。折腾了一会,还是没搞定,最终换成了vs2010,因为jdk8官方就是用vs2010编译的,就没有什么问题。如果你已经解决了,麻烦在评论区告诉我。

安装前准备:

vs2010

freetype-2.8.1

cygwin

freetype-2.8.1下载地址

https://download.savannah.gnu.org/releases/freetype/

编译步骤,参考上面的3篇文章,写的很仔细,我这里再总结下错误。

错误一:解决办法要分类型,网上各种解决方式都有,不能千篇一律,要根据自己的报错提示确定

1)检查MSC_VER="1600",文件路径D:\jvm\jdk8u-dev\hotspot\make\windows\get_msc_ver.sh

if [ "x$FORCE_MSC_VER" != "x" ]; then
  echo "MSC_VER=$FORCE_MSC_VER"
else
  #MSC_VER_RAW=`cl 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
  #MSC_VER_MAJOR=`"$ECHO" $MSC_VER_RAW | "$CUT" -d'.' -f1`
  #MSC_VER_MINOR=`"$ECHO" $MSC_VER_RAW | "$CUT" -d'.' -f2`
  #MSC_VER_MICRO=`"$ECHO" $MSC_VER_RAW | "$CUT" -d'.' -f3`
  MSC_VER_RAW="16.00.40219.01"
  MSC_VER_MAJOR="16"
  MSC_VER_MINOR="0"
  MSC_VER_MICRO="40219"
  if [ "${MSC_VER_MAJOR}" -eq 14 -a "${MSC_VER_MINOR}" -eq 0 -a "${MSC_VER_MICRO}" -eq 30701 ] ; then
    # This said 1400 but it was really more like VS2003 (VC7) in terms of options
    MSC_VER=1399
  else
  #  MSC_VER=`"$EXPR" $MSC_VER_MAJOR \* 100 + $MSC_VER_MINOR`
  	MSC_VER="1600"
  fi
  echo "MSC_VER=$MSC_VER"
  echo "MSC_VER_RAW=$MSC_VER_RAW"
fi

2 )修改cvtres.exe为cvtres2.exe,只保留windows下的Microsoft.NET下的Framework 或Framework64其中一个,根据编译的软件位数确定,其他的通通都修改掉。

报错二,现象如下

make[2]: *** [CreateJars.gmk:268:/cygdrive/e/jvm/jdk8u-dev/build/windows-x86_64-normal-server-slowdebug/images/lib/_the.rt.jar.contents] 错误 1
make[2]: *** 正在等待未完成的任务....
make[1]: *** [BuildJdk.gmk:101:images] 错误 2
make: *** [/cygdrive/e/jvm/jdk8u-dev//make/Main.gmk:136:images-only] 错误 2

 

解决方式:vi jdk/make/CreateJars.gmk

:268 定位到268行

$$前添加^M,输入方式是ctrl+v,不放ctrl,然后按M,过程要连续,不能隔太久。

报错三、四:就是cygwin too old和 cpu mismatch,找到相应的D:\jvm\jdk8u-dev\common\autoconf\generated-configure.sh注释掉即可。

编译指令

cd   /cygdrive/d/jvm/jdk8u-dev

#编译32位客户端
bash ./configure --with-freetype=/cygdrive/d/jvm/freetype-2.8.1 -with-target-bits=32 --with-debug-level=slowdebug --with-jvm-variants=client with_toolsdir="/cygdrive/d/Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"

#编译服务器端
bash ./configure --with-freetype=/cygdrive/d/jvm/freetype-2.8.1   --with-debug-level=slowdebug  with_toolsdir="/cygdrive/d/Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" 

#然后执行
make images

编译成功:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值