天天看點

編譯OpenJDK12:methodMatcher.cpp error C2220 警告被視為錯誤 - 沒有生成“object”檔案

如果是VS工程出現這個錯誤,那好辦,項目,右鍵,屬性,C/C++,所有選項,将警告視為錯誤,改為否,即可。而這裡……

檢視其他資訊,提示:該檔案包含不能在目前代碼頁中表示的字元。請将該檔案儲存為Unicode格式以防資料丢失。

仔細研究了一下代碼,原因是一個表示0xFF以内(部分沒用到)的數組導緻的。這個數組傳遞時好像變成了UTF-8?導緻後續都無法處理。怎麼辦?

編譯時加選項(有效解決):

--disable-warnings-as-errors

改檔案格式(無效)

吾将其拖入VS中,儲存時選擇Unicode UTF-8帶簽名。

檔案是:src/hotspot/share/compiler/methodMatcher.cpp(258)

修改CFLAG(無效)

打開src/utils/hsdis/Makefile:161,修改CFLAG:

把 /WX 改為 /WX- 

修改代碼

還有一個make/hotspot/src/classes/build/tools/projectcreator/WinGammaPlatformVC10.java,Set /WX option下一句改為false