装了vs2015.3.ent_enu.iso, 编译chromium. 前面的步骤都搞好了。 当执行 ninja -C out\Default chrome 时,报错如下:
\depot_tools\src\base\win\windows_version.cc(18): fatal error C1189: #error: VS 2015 Update 3 with Cumulative Servicing Release or higher is required [316/29919] CXX obj/base/base/win_util.obj ninja: build stopped: subcommand failed.查windows_version.cc源码, 看到检测编译版本的代码
#include "base/win/registry.h" #if !defined(__clang__) && _MSC_FULL_VER < 190024213 #error VS 2015 Update 3 with Cumulative Servicing Release or higher is required #endif看来是vs2015update3还要打补丁或者没装全或者装失败了,导致CL版本没升级到要求的版本.
折腾了2天,才发现,还是vs2015安装时,选的不全。不用再打vs2015update3的2个补丁. 能用的vs2015版本的安装选项:先全选,然后去掉F#,移动开发,win8SDK. 如果最后某个安装选项失败,按照log提示,先卸掉安装失败的选项,重新安装时,选择修复.
这个查看选项没在CL的帮助中,查资料,看到别人这么用.
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>cl /Bv Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86 Copyright (C) Microsoft Corporation. All rights reserved. Compiler Passes: D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe: Version 19.00.24215.1 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\c1.dll: Version 19.00.24215.1 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\c1xx.dll: Version 19.00.24215.1 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\c2.dll: Version 19.00.24215.1 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe: Version 14.00.24215.1 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\mspdb140.dll: Version 14.00.24210.0 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\1033\clui.dll: Version 19.00.24215.1 cl : Command line error D8003 : missing source filename写了一个测试程序,看看刚装完的vs2015的_MSC_FULL_VER是多少?
// ConsoleApplication1_1602.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdlib.h> #include <stdio.h> int main() { long lVer = _MSC_FULL_VER; printf("_MSC_FULL_VER = %d\n", _MSC_FULL_VER); /** 190023026 // vs2015 RTM original version 190024210 // this is mine 190024213 // this is chromium request 190024215 // 完整的装完vs2015update3 */ system("pause"); return 0; }