7

我正在尝试cl从命令行使用 Visual Studio 2010 编译器。

由于某些原因,我安装的 Visual Studio 2010 无法正确配置 INCLUDELIB目录,请参阅有关致命错误 C1034: no include path set 的另一篇文章。如果我跑

`vcvars32.bat`

我收到以下错误消息:

ERROR: Cannot determine the location of the VS Common Tools folder.

然后我尝试手动设置这些环境变量。所以我创建了一个简单的bat文件,如下所示:

Set INCLUDE="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;"

Set LIB="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;"

cl test.cpp

但我现在收到以下错误

LINK : fatal error LNK1104: cannot open file 'libcpmt.lib'

我不明白为什么会发生这种情况,因为libcpmt.lib它位于上述LIB目录之一中。

这个问题有什么解决办法吗?

编辑

我使用VS2010命令提示符的第一个答案中的程序给出错误:无法确定VS Common Tools文件夹的位置,现在VS100COMNTOOLS设置了环境变量。但是INCLUDELIB环境变量仍然没有设置,即使我尝试手动设置它们

set INCLUDE = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;"

set LIB = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;"

因此,当我尝试编译.cpp收到的文件时

fatal error C1034: iostream: no include path set

编辑:最终解决方案

按照 Hans Passant 的建议,这是最终的解决方案

@SET INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;

@SET LIB=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;

cl /EHsc -o FileName.obj -c FileName.cpp
4

1 回答 1

4

摆脱双引号。

真正的问题是没有设置 VS100COMNTOOLS 环境变量。您需要找出为什么环境会如此混乱。控制面板 + 系统 + 高级 + 环境变量。或者使用 VS 安装修复选项。进行更改后注销+登录。

于 2013-09-19T14:41:31.430 回答