2016-08-03 81 views
0

我可能错过了一些明显的东西 - 但我一直在这个问题上停留了一段时间。我正在使用MSBuild在命令行上编译Visual Studio项目。基本上是这样的:MSBuild - 无法打开包含文件(尽管在INCLUDE列表中列出)

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

但是,如果我以后检查环境变量INCLUDE VCVARS32.BAT调用该目录包含“WINSOCK.H”在列表中 - 所以我肯定在SDK中有这个文件。

此外,如果我更改详细的MSBuild的详细信息,我可以看到使用完整的编译命令。如果我将其复制并在控制台中运行,则相同的cpp文件编译时不会出现任何问题。

任何想法什么是不同的内部MSBuild上下文?

回答

0

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

(还是有点不确定为什么必须做虽然,因为我不能记得有需要的早些时候命令行构建。)根据这篇文章

+0

,该UseEnv属性设置为true,以保证环境变量不会被覆盖。你重写环境变量吗? –

+0

@ s09至少不是故意的,我只是在一个新的cmd中运行这两个命令。 – Zitrax

+0

您可以用新项目重现该问题吗?在此提供详细步骤(包括命令) –

相关问题