vs2015编译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

编译成功:

猜你喜欢

转载自blog.csdn.net/judyjie/article/details/86916838