带有 vs2013 的 Windows 7 上的 Chromium 构建失败(警告为错误)

Posted

技术标签:

【中文标题】带有 vs2013 的 Windows 7 上的 Chromium 构建失败(警告为错误)【英文标题】:Chromium build failure on windows 7 with vs2013 (warning as error) 【发布时间】:2014-08-03 14:37:53 【问题描述】:

我正在尝试使用 VS2013 express Desktop 在 64 位 Windows 上构建 chromium(浏览器)。 当我运行“忍者”来构建铬时,它失败并出现以下错误: “错误 C2220:警告视为错误 - 未生成‘对象’文件” 有没有人知道我必须做些什么来避免它?

以下是我运行“ninja”时的结果:

E:\chrome_build\depot_tools\src>ninja –C out\Debug chrome
ninja: Entering directory `out\Debug'
[352/18195] CXX obj\third_party\snappy\src\snappy.snappy-stubs-internal.obj
FAILED: ninja -t msvc -e environment.x86 -- "E:chrome_build\depot_tools\win_too
lchain\vs2013_files\VC\bin\cl.exe" /nologo /showInculdes /FC @obj\third_party\sn
appy\src\snappy.snappy-stubs-internal.obj.rsp /c ..\..\third_party\snappy\src\sn
appy-stubs-internal.cc /Foobj\third_party\snappy\src\snappy.snappy-stubs-interna
l.obj /Fdobj\third_party\snappy\snappy.cc.pdb
e:\chrome_build\depot_tools=src\third_party\snappy\src\snappy-stubs-internal.h :
 error C2220: warning treated as error - no 'object' file generated
e:\chrome_build\depot_tools=src\third_party\snappy\src\snappy-stubs-internal.h :
 warning C4819: The file contains a character that cannot be represented in the
current code page (949). Save the file in Unicode format to prevent data loss
[352/18195] CXX obj\third_party\snappy\src\snappy.snappy.obj
FAILED: ninja -t msvc -e environment.x86 -- "E:chrome_build\depot_tools\win_too
lchain\vs2013_files\VC\bin\cl.exe" /nologo /showInculdes /FC @obj\third_party\sn
appy\src\snappy.snappy.obj.rsp /c ..\..\third_party\snappy\src\snappy.cc /Foobj\
third_party\snappy\src\snappy.snappy.obj /Fdobj\third_party\snappy\snappy.cc.pdb

e:\chrome_build\depot_tools=src\third_party\snappy\src\snappy-stubs-internal.h :
 error C2220: warning treated as error - no 'object' file generated
e:\chrome_build\depot_tools=src\third_party\snappy\src\snappy-stubs-internal.h :
 warning C4819: The file contains a character that cannot be represented in the
current code page (949). Save the file in Unicode format to prevent data loss
[352/18195] CXX obj\device\hid\device_hid.hid_service_win.obj
ninja: build stopped: subcommand failed.

E:\chrome_build\depot_tools\src>

【问题讨论】:

【参考方案1】:

e:\chrome_build\depot_tools=src\third_party\snappy\src\snappy-stubs-internal.h : 警告 C4819:文件包含无法在 当前代码页 (949)。以 Unicode 格式保存文件以防止数据丢失

用notepad.exe打开文件,或者你喜欢的任何东西,用utf-8编码保存。

【讨论】:

【参考方案2】:

没有。您不能将其保存为 UTF-8。我也遇到了同样的错误,我发现提到的文件已经是 UTF-8。 (在 cmets 中有一些德语文本)另外,忍者建议将文件保存为 Unicode。

这是我收到的错误消息:

hash_tables.h:警告 C4819:该文件包含当前代码页 (950) 中无法表示的字符。以 Unicode 格式保存文件以防止数据丢失

同样的错误现在出现在 src/testing/gtest/include/gtest/internal/gtest-internal.h 和 third_party/libusb/src/libusb/stderror.c 下的几个头文件中

另外,您是否在 Windows 机器上进行编译?我也在 Windows 机器上进行开发。猜猜大多数其他用户正在使用 Linux。

=====

我在寻找其他可能的解决方案时遇到了这个问题:

http://www.chromium.org/developers/how-tos/build-instructions-windows#TOC-Build-failures-on-Vista

但我认为这个建议并不明智。

【讨论】:

非常感谢您的回答。正如您所提到的,大多数人都在使用 Linux,我认为我也必须这样做。因此,我远离 Windows 进行开发。再次感谢汤姆的回答。【参考方案3】:

为避免此警告,您需要将 Windows 系统代码页更改为英语或其他 SBCS 代码页。您可以通过Control Panel - Regions - Administrative - Language for non-Unicode programs 进行此操作。

https://groups.google.com/a/chromium.org/forum/#!msg/chromium-dev/3DV8Huz5C0M/oyvU9flBqMYJ

【讨论】:

【参考方案4】:

在 BOM 中使用 UTF8

我在 win8 上构建角度时遇到了这个问题

【讨论】:

以上是关于带有 vs2013 的 Windows 7 上的 Chromium 构建失败(警告为错误)的主要内容,如果未能解决你的问题,请参考以下文章

windows 7 + vs2013 + opencv249 + cuda6.5 环境搭建

Windows 10 上的 WinRTXAMLToolkit 树视图崩溃

AnkhSVN 在 Windows 7(64 位)上的 VS 2008 中未显示为源代码控制插件

caffe windows10 vs2013怎么配置

带有控制台/Windows服务示例VS2010的signalR自主机

windows下编译nginx+nginx_rtmp_modue(vs2013)