编译OpenJDK12:methodMatcher.cpp error C2220 警告被视为错误 - 没有生成“object”文件

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 1070

如果是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

本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>

我有话说: