我正在使用两台装有Visual Studio 2019的计算机。一台具有社区版,另一台具有Pro版。
MSBuild的专业版完全忽略了INCLUDE环境变量,因此我要构建的项目(ICU)无法找到stddef.h。 stddef.h文件位于Windows Kits 10 ucrt目录中,该目录包含在INCLUDE env var中。
社区版不执行此操作。
当我使用/ v:diag选项构建项目时,我可以看到INCLUDE env var中定义的大部分内容都被添加到名为CAExcludePath的变量中。
这是INCLUDE env var:INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\include;;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\atlmfc\include;;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\VS\include;;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt;;;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\VS\UnitTest\include;C:\Program Files (x86)\Windows Kits\8.1\Include\um;C:\Program Files (x86)\Windows Kits\8.1\Include\shared;C:\Program Files (x86)\Windows Kits\8.1\Include\winrt;;
这是CAExcludePath:CAExcludePath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt;;C:\Program Files (x86)\Windows Kits\8.1\Include\um;C:\Program Files (x86)\Windows Kits\8.1\Include\shared;C:\Program Files (x86)\Windows Kits\8.1\Include\winrt;;
为什么会发生这种情况以及如何预防呢?
答案 0 :(得分:1)
改用 IncludePath
环境变量。
set IncludePath=%INCLUDE%
IncludePath
在运行 msbuild
时不会被忽略/覆盖,我能够通过设置它成功编译我的项目/解决方案。
在我的机器上,设置 IncludePath
会覆盖 3 个本来会设置的路径。这 3 条路径在我的 %INCLUDE%
路径中有类似物(相同的头文件但用于不同版本),因此忽略/破坏/忽略这些似乎是安全的(实际上是谨慎的)。
答案 1 :(得分:0)
MSBuild 2019忽略INCLUDE环境变量
我认为您不应将这些路径设置为环境变量。对于C ++项目,默认情况下,VS无法识别系统环境变量中的库路径,这不是VS作业。
通常,您应该在VS IDE中设置额外的库路径。右键单击您的项目-> Properties
-> Configuration Properties
-> VC++ Directories
-> Include Directories
或Properties
-> {{1 }}-> Configuration Properties
-> C/C++
。您可以参考this official document。
但是,当我安装 Windows Kits工具时,默认情况下此路径包含在include路径中,您可以直接在代码中使用它。看到这个:
所以,当您安装 Windows Kits工具时,我担心您出了点问题。请按照this document安装正确的工具,然后在完成之前,请安装相关的扩展程序,这是Visual Studio 2019安装程序中集成该工具的最后一步。
我认为在安装扩展程序时,这些路径将自动包含在VS中,您可以直接使用它们。
此外,如果您不想安装此扩展程序,则可以按照上述步骤手动添加包含路径。
如果您已完成这些步骤,但仍然遇到相同的错误,我认为您应该检查环境并遵循以下建议:
1)关闭VS实例,删除Additional Include Directories
,.vs
,bin
文件夹,重新打开项目,然后再次构建
2) do a repair
3)如果您的VS不是最新的,请更新您的VS,并且不要忘记同时更新操作系统。
希望这些帮助。