解决chromium警告C4819

初次构建chromium的时候,可能会遇到错误

: warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss

: error C2220: warning treated as error - no ‘object’ file generated

尤其是在Windows上构建的时候,更容易遇到,网络上的方法,基本都是修改系统区域为英国(美国):

控制面板–区域–管理–更改系统区域设置 在页面中选择英语区域即可

这样修改系统设置,我不太喜欢,尤其是在工作机上,这样修改可能会引起其他未知问题,所以直接修改了gn配置文件中的default_warnings字段,添加一项"/wd4819"即可。


Update:

上面方法会导致部分文件无法正常解析,产生各种奇怪的语法错误。

新版chromium已经修复了此问题,提交详情见这里,最新的BUILD.gn文件见这里,其基本原理就是VS2015支持的新特性/utf-8,所以最终只需要在build/config/compiler/BUILD.gn文件中添加该编译选项即可:

1
2
3
4
cflags += [
# Assume UTF-8 by default to avoid code page dependencies.
"/utf-8",
]
发布时间: 2018年04月26日 - 20时57分
更新时间: 2018年10月17日 - 21时42分
原始链接: https://oaoa.me/posts/28d92fb6/