为什么使用cl或msbuild不能正确链接Windows-sdk?

时间:2019-05-03 17:45:21

标签: visual-studio-2017

我使用VS2017构建一些c ++项目,并且运行成功。当我使用MSBuildcl或qt-creator使用msvc工具构建某些库时,总是出现“无法打开包含文件”的错误,这些丢失的包含文件都位于{{1}中},例如:

Windows Kit

我已经寻找解决方案,最后找到了qt解决方案:当我添加以下两行时,带有msvc工具的qt-creator可以成功构建:

e:\workspace\boost_1_70_0\tools\build\src\engine\jam.h(71): fatal error C1083: can not open include file: "ctype.h": No such file or directory
e:\workspace\boost_1_70_0\tools\build\src\engine\strings.h(11): fatal error C1083: can not open include file: "stddef.h": No such file or directory
order.c
e:\workspace\boost_1_70_0\tools\build\src\engine\modules\../mem.h(67): fatal error C1083: can not open include file: "stdlib.h": No such file or directory

对于this,我已经检查了win32 { INCLUDEPATH += "F:\\Windows Kits\\10\\Include\\10.0.17763.0\\ucrt\\" LIBS += -L"F:\\Windows Kits\\10\\Lib\\10.0.17763.0\\ucrt\\x86\\" }

user.props

很明显,<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ImportGroup Label="PropertySheets"> </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup /> <ItemDefinitionGroup /> <ItemGroup /> </Project> WindowsSDKVersionWindowsSDK_IncludesPath或Windows SDK出现了其他问题。但这直到今年才存在。我不知道发生了什么事。

是否可以纠正WindowsSDK_LibraryPathWindowsSDK_IncludesPath,或者至少可以使用msbuild和cl?

1 个答案:

答案 0 :(得分:0)

好吧...我终于找到了一个“肮脏”的解决方案: 我编辑vcvarsall.bat,将__VCVARSALL_WINSDK的默认值更改为我的目标WindowsSDK版本: enter image description here%WindowsSDKVersion%是我之前设置的环境变量)

似乎一切正常...希望如此