【openjdk】windows下编译openjdk 1.7
准备阶段:
- 安装Mercurial
https://www.mercurial-scm.org/wiki/Download#Windows
确保安装成功
image.png- Cygwin64 - 安装时注意不要使用默认安装,以下组件单独安装 http://www.cygwin.com
- Visual Studio 10
安装后设置环境变量PATH - 注意vs的cgwin前面,因为两个bin目录都有link.exe, 只有用vs的link.exe才能完成编译。
image.png-
下载一个编译好的jdk (jdk 1.7)
-
下载Apache ANT 1.6.5之上, 1.9以下,不能用1.10以上版本
-
2.3版本以上的FreeType(免费字体渲染库)
设置环境变量 ALT_FREETYPE_LIB_PATH指向FreeTypebin, ALT_FREETYPE_HEADERS_PATH指向include, 把FreeType的bin加入path
-
下载microsoft DirectX 9.0 SDK,新建环境变量 ALT_DXSDK_PATH 指向 安装目录
-
找到MSVCR100.DLL的动态链接库,建立环境变量ALT_MSVCRNN_DLL_PATH指向这个文件所在的目录
-
下载源码
- 下载windows sdk
https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk
- 下载vs 2010
http://pan.baidu.com/s/1i51yM9J 密码:fw41
参考文档:
下载下来的openjdk源码路径中:/openjdk7/README-builds.html#msvc32
系统设置
-
执行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">
-
取消环境变量JAVA_HOME, 设置环境变量BUILD_CORBA值为false
image.png编译
-
遇到问题:No VS2010 found on system. Stop.
image.png
解决办法:重新安装SDK和.NET framework
https://www.cnblogs.com/zzling007/p/6661705.html
-
遇到问题:COMPILER_PATH cannot be empty here. Stop.
<embed stylectet-stream" src="EC6F26E5-9DF7-4978-B0FD-0B8DD7134D0A.bat"> open
解决办法: 增加环境变量COMPILER_PATH和COMPILER_VERSION
-
遇到问题: freetypecheck.c(29) : fatal error C1083 stdio.h No such file or directory
image.png
** 解决办法**: INCLUDE环境变量设置有误
-
遇到问题: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0
jdk1.7
** 解决方案:
ant1.10. 需要java8. , ant1.9.需要jdk5
=》 安装ant 1.9
image.png=> 修改D:\jdkBuild\openjdk7\jaxp\jaxp.properties
image.png- 遇到问题 : get_msc_ver.sh: line 65: integer expression expected
解决方案:
D:\jdkBuild\openjdk7\hotspot\make\windows\get_msc_ver.sh
-
遇到问题: LNK1112 : 模块计算机类型“X86”与目标计算机类型“x64” 冲突
image.png
解决方案:
D:\jdkBuild\openjdk7\hotspot\make\windows\makefiles\compile.make
-
遇到问题: InstanceMirrorKlass.java 编译错误
image.png
解决方案:
- 遇到问题: COMPILER_VERSION cannot be empty here.
解决方案:
==>D:\jdkBuild\openjdk7\jdk\make\common\shared\Compiler-msvc.gmk
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失败
解决方案:
http://p2p2500.iteye.com/blog/2099863
set HOTSPOTMKSHOME=G:\cygwin\bin
image.png image.pngimage.png历时4天,终于成功了。。。