MSBuild-无法打开包含文件(尽管已在include列表中列出)

MSBuild - Cannot open include file (despite listed in the INCLUDE list )

本文关键字:include 列表 包含 文件 MSBuild-      更新时间:2023-10-16

我可能遗漏了一些显而易见的东西,但我在这个问题上已经被卡住了一段时间。我正在使用MSBuild在命令行上编译Visual Studio项目。基本上是这样的:

CALL vcvars32.bat
MSBuild myproject.sln /m /t:rebuild /p:Configuration=Release /verbosity:m

但这给了我一个错误:fatal error C1083: Cannot open include file 'winsock.h': No such file or directory

但是,如果我在vcvars32.bat调用后检查环境变量INCLUDE,那么包含"winsock.h"的目录就在列表中——所以我在SDK中肯定有这个文件。

此外,如果我将MSBuild的详细信息更改为详细信息,我可以看到使用的完整编译命令。如果我复制并在控制台中运行它,那么同一个cpp文件编译起来不会有任何问题。

你知道MSBuild上下文中有什么不同吗?

解决它,添加/p:useenv=true使MSBuild使用INCLUDE环境变量。

(仍然有点不确定为什么必须这样做,因为我记不起以前在命令行构建中需要这样做了。)