用VS2010编译OpenJDK6,是一个比OpenJDK7更痛苦的过程。
除了OpenJDK7里需要注意的,还有下面几个:
1、编译器版本不同,所以要自行在Makefile中,增加编译器版本
同样的,还有cp一些dll的命令,需要屏蔽
2、命令冲突
主要是sort和echo
3、Windows版本问题,导致部分define失败,以及部分结构体不存在
从而无法编译通过,主要是
jdk/src/windows/native/sun/windows/awtmsg.h jdk/src/windows/native/sun/windows/awtMMStub.h jdk/src/windows/native/java/net/NetworkInterface.h
4、jchar*与LPWCHAR之间的CAST失败,主要存在于
jdk/src/windows/native/sun/windows jdk/src/windows/native/sun/nio/sun jdk/src/windows/native/sun/java2d/windows jdk/src/windows/native/sun/awt/splashscreen
5、设置环境变量的命令行:
@set PATH=C:\Windows\system32; @call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64 @set VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools @set ANT_HOME=D:/JavaTools/apache-ant-1.8.1 @set PATH=%PATH%;%ANT_HOME%\bin; @set FREETYPE_HOME=D:/GnuWin/freetype2.4.10 @set PATH=%PATH%;%FREETYPE_HOME%/bin; @set ALT_FREETYPE_LIB_PATH=%FREETYPE_HOME%/lib64 @set ALT_FREETYPE_HEADERS_PATH=%FREETYPE_HOME%/include @set ALT_BOOTDIR=D:/JavaJDK/jdk1.6.0_34 @set ARCH_DATA_MODEL=64 @set ARCH=amd64 @set PLATFORM=windows @set ALT_DROPS_DIR=D:/DiskF/OpenJDK/openjdk6_VS2010_x64/drops @set ALT_COMPILER_PATH=C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64 @set PATH=%PATH%;D:\Cygwin\bin; @set JAVA_HOME= @set CLASSPATH= @color 02 @title OpenJDK6+VS2010+x64 @cmd