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

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

【配置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文件。至此问题彻底解决。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5703128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存