VC++2005编译器和Lib相对VC++2003做了不少改动,因此编译JVM代码的时候需要作一些修改。
先读
这个。
一、hotspot\build\windows\makefiles\compile.make
Line51:CPP_FLAGS=/nologo /W3 /WX
改 为:CPP_FLAGS=/nologo /W3 /WX /D "_CRT_SECURE_NO_DEPRECATE=1" /D "_CRT_NONSTDC_NO_DEPRECATE=1"
Line51:CPP_FLAGS=/nologo /W3 /WX
改 为:CPP_FLAGS=/nologo /W3 /WX /D "_CRT_SECURE_NO_DEPRECATE=1" /D "_CRT_NONSTDC_NO_DEPRECATE=1"
即增加_CRT_SECURE_NO_DEPRECATE 和 _CRT_NONSTDC_NO_DEPRECATE 的宏定义
二、hotspot\src\os\win32\vm\perfMemory_win32.cpp
Line 546: char* first_colon = strchr(path, ':');
改 为: const char* first_colon = strchr(path, ':');
下面的三、四点我不知道错误原因,简单地修改了代码,让编码通过。
三、hotspot\src\share\vm\runtime\vm_version.cpp
Line226~Line228:
return VMNAME " (" HOTSPOT_BUILD_VERSION ") for " OS "-" CPU
", built on " __DATE__ " " __TIME__
" by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER;
出现编译错误:C4566
原因是什么,我还不知道。我只是简单的把代码改为 return ""; 暂时让编译通过。
Line226~Line228:
return VMNAME " (" HOTSPOT_BUILD_VERSION ") for " OS "-" CPU
", built on " __DATE__ " " __TIME__
" by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER;
出现编译错误:C4566
原因是什么,我还不知道。我只是简单的把代码改为 return ""; 暂时让编译通过。
四、D:\temp\hotspot\src\share\vm\adlc\main.cpp
Line 412~Line414:
void *operator new( size_t size, int, const char *, int ) {
return ::operator new( size );
}
出现编译错误:C2084
原因是什么我也不知道,我把这三行代码注释掉,暂时让编译通过。
Line 412~Line414:
void *operator new( size_t size, int, const char *, int ) {
return ::operator new( size );
}
出现编译错误:C2084
原因是什么我也不知道,我把这三行代码注释掉,暂时让编译通过。