我可能错过了一些明显的东西 - 但我在这个问题上已经被困了一段时间。我正在使用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上下文中有什么不同的想法吗?
答案 0 :(得分:1)
解决了这个问题,添加/p:useenv=true
使MSBuild使用INCLUDE环境变量。
(还是有点不确定为什么必须要这样做,因为我无法回想起之前为命令行构建所需的那些。)