fatal error C1189: #error: VS 2015 Update 3 with Cumulative Servicing Release or higher is required

来源:互联网 发布:2015nba总决赛数据统计 编辑:程序博客网 时间:2024/06/05 20:21

装了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.objninja: 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版本的命令

这个查看选项没在CL的帮助中,查资料,看到别人这么用.

D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>cl /BvMicrosoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86Copyright (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.1cl : 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;}
0 0
原创粉丝点击