栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【配置CMake报C&CXX编译器找不到错误】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【配置CMake报C&CXX编译器找不到错误】

问题描述:

使用CMake进行配置时,generator选择VS2015,platform选择x64,点击finish后,出现如下问题:C与CXX编译器无法找到;同时打开CMakeError.log,显示“error LNK1104 无法打开文件“ucrtd.lib” ”。

使用VS2015做个简单项目,比如printf “hello”,调试无法通过,提示“无法打开包括文件stdio.h” ,此现象为当前问题的最直接表现,CMake无法配置成功也由此衍生。(好的习惯是安装完VS后,先测试VS是否可以调试成功,再做其他配置,显然操作者并没有按此步骤执行)

原因分析: VS2015无法打开包括文件stdio.h ctype.h ucrtd.lib等标准库文件,其核心原因是安装时Windows kits 10的版本号与VS2015中使用的版本号不一致所导致。在VS环境变量中其Windows kits的版本号默认为10.0.10240.0,而实际打开C:Program Files (x86)Windows Kits10Include文件夹看到的版本名称是10.0.10150.0或者其他版本号。Lib文件等也是一样的情况。解决问题的核心是把VS2015中的默认设置修改为实际安装的Windows kits版本号。
解决方案:

1、用文件资源管理器进入C:Program Files (x86)Windows Kits10Include文件夹,查看实际安装的Windows Kits版本号,例如10.0.10150.0。

2、用文件资源管理器进入
C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140文件夹,找到Microsoft.Cpp.Common.props文件。

3、鼠标右键点击,选择文件属性,去除只读的文件属性。

4、使用文本编辑器打开Microsoft.Cpp.Common.props文件,找到如下内容:

10.0.10240.0$(UniversalCRTSdkDir)DesignTimeCommonConfigurationNeutralucrt.props

修改10.0.10240.0为10.0.10150.0(步骤1中查看的版本号)。

5、保存文件。保存过程中会提示文件只读无法保存,是因为文本编辑器的权限不够。此时我们选择另存为,保存到其他文档目录。之后复制文件并粘贴回C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140文件夹,覆盖Microsoft.Cpp.Common.props文件。至此问题彻底解决。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703022.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号