【openjdk】windows下编译openjdk 1.7

2018-12-28  本文已影响0人  静筱

准备阶段:

  1. 安装Mercurial

https://www.mercurial-scm.org/wiki/Download#Windows

确保安装成功

image.png
  1. Cygwin64 - 安装时注意不要使用默认安装,以下组件单独安装 http://www.cygwin.com
image.png image.png
  1. Visual Studio 10

安装后设置环境变量PATH - 注意vs的cgwin前面,因为两个bin目录都有link.exe, 只有用vs的link.exe才能完成编译。

image.png
  1. 下载一个编译好的jdk (jdk 1.7)

  2. 下载Apache ANT 1.6.5之上, 1.9以下,不能用1.10以上版本

  3. 2.3版本以上的FreeType(免费字体渲染库)

        设置环境变量   ALT_FREETYPE_LIB_PATH指向FreeTypebin, ALT_FREETYPE_HEADERS_PATH指向include, 把FreeType的bin加入path
    
image.png
  1. 下载microsoft DirectX 9.0 SDK,新建环境变量 ALT_DXSDK_PATH 指向 安装目录

  2. 找到MSVCR100.DLL的动态链接库,建立环境变量ALT_MSVCRNN_DLL_PATH指向这个文件所在的目录

  3. 下载源码

image.png image.png
  1. 下载windows sdk

https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk

  1. 下载vs 2010

http://pan.baidu.com/s/1i51yM9J 密码:fw41

参考文档:

下载下来的openjdk源码路径中:/openjdk7/README-builds.html#msvc32

系统设置

  1. 执行VARS32.BAT,设置include, lib,path等环境变量,然后建立ALT_COMPILER_PATH,ALT_BOOTDIR,ALT_JDK_IMPORT_PATH , style="cursor:pointer;" type="application/octet-stream" src="ABBD9A38-FA61-4903-AAC6-AA8A0799DA3C.bat">

  2. 取消环境变量JAVA_HOME, 设置环境变量BUILD_CORBA值为false

编译

image.png
  1. 遇到问题:No VS2010 found on system. Stop.
    image.png

解决办法:重新安装SDK和.NET framework

https://www.cnblogs.com/zzling007/p/6661705.html

  1. 遇到问题:COMPILER_PATH cannot be empty here. Stop.
    <embed stylectet-stream" src="EC6F26E5-9DF7-4978-B0FD-0B8DD7134D0A.bat"> open

解决办法: 增加环境变量COMPILER_PATH和COMPILER_VERSION

  1. 遇到问题: freetypecheck.c(29) : fatal error C1083 stdio.h No such file or directory
    image.png

** 解决办法**: INCLUDE环境变量设置有误

  1. 遇到问题: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0
    jdk1.7
image.png

** 解决方案:
ant1.10.
需要java8. , ant1.9.
需要jdk5

=》 安装ant 1.9

image.png

=> 修改D:\jdkBuild\openjdk7\jaxp\jaxp.properties

image.png
  1. 遇到问题 : get_msc_ver.sh: line 65: integer expression expected
image.png

解决方案:
D:\jdkBuild\openjdk7\hotspot\make\windows\get_msc_ver.sh

image.png
  1. 遇到问题: LNK1112 : 模块计算机类型“X86”与目标计算机类型“x64” 冲突
    image.png

解决方案:
D:\jdkBuild\openjdk7\hotspot\make\windows\makefiles\compile.make

image.png
  1. 遇到问题: InstanceMirrorKlass.java 编译错误
    image.png

解决方案:

image.png
  1. 遇到问题: COMPILER_VERSION cannot be empty here.
image.png

解决方案:
==>D:\jdkBuild\openjdk7\jdk\make\common\shared\Compiler-msvc.gmk

image.png
9.遇到问题: LNK1112 : 模块计算机类型“X86”与目标计算机类型“x64” 冲突
image.png
解决方案:
==>D:\jdkBuild\openjdk7-2\hotspot\make\windows\makefiles\compile.make -- machin image.png

<embed style="cursor:pointer;" type="application/octet-stream" src="983C3E44-536A-40A6-89C5-E41789864C51.bat">

10.遇到问题: 创建库 jvm.lib 和对象 jvm.exp失败

image.png

解决方案:
http://p2p2500.iteye.com/blog/2099863

set HOTSPOTMKSHOME=G:\cygwin\bin

image.png image.png

历时4天,终于成功了。。。

image.png
上一篇下一篇

猜你喜欢

热点阅读