Windows 原生 cmd 窗口下编译 C++(cl命令)出现的问题及解决方法
2017-09-04 22:08
555 查看
本文适用对象: Windows 操作系统下,已经成功安装了 Visual studio,并且希望在 Windows 系统原生 cmd 窗口中编译 C++ 的人。本文示例操作系统为 Windows 10 1703 64 位,示例 VS 版本为 Visual Studio 2017 Community。
注意:在不同操作系统或不同 VS 版本,下文示例路径可能会稍有不同。
最近在入门C++,在原生cmd窗口中编译C++时出现了一系列的问题。经过搜索后将问题解决,现将问题及解决方法总结于下。
/*
*太长不看版:
*出现的问题基本都是没有对环境变量中的系统变量进行操作,将下述的路径编辑进环境变量中即可。
*/
1. ‘cl’ 不是内部或外部命令,也不是可运行程序或批处理文件
上述错误表示系统找不到 cl.exe 这个文件。
此文件位于 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64 中(再次提醒,不同操作系统或不同 VS 版本,所示路径可能会有所不同)。
解决方法为,右键此电脑,选择“属性”,“高级系统设置”,“环境变量”。在下方的“系统变量”中找到变量 path,选择“编辑”,“新建”。将上述路径添加进此变量即可。
2. “fatal error C1034: iostream: 不包括路径集”或“fatal error C1083: 无法打开包括文件: “corecrt.h”: No such file or directory”
上述错误表示系统找不到 iostream 或者 corecrt.h 这个文件。C++ 的头文件们分别保存在下述目录中。
解决方法为,右键此电脑,选择“属性”,“高级系统设置”,“环境变量”。在下方的“系统变量”中选择变量 INCLUDE,若没有此变量,则选择“新建”,变量名为“INCLUDE”,变量值列在下方:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt
注意:路径之间用英文分号隔开。
3. fatal error LNK1104: 无法打开文件“libcpmt.lib”
上述问题表示系统找不到 .lib 文件。这些文件的路径列在下方。
解决方法为,右键此电脑,选择“属性”,“高级系统设置”,“环境变量”。在下方的“系统变量”中选择变量 LIB,若没有此变量,则选择“新建”,变量名为“LIB”,变量值列在下方:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\lib\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\ucrt\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\x64
注意:路径之间用英文分号隔开。
如果上述三个步骤全部完成,还是出现问题,可能的情况及解决办法有:
1. 检查上述所有路径全部保存在了正确的变量名底下;
2. 重启 cmd 窗口并重新尝试;
3. 系统为 32/64 位却添加了另一方的路径。
如果本文没有解决你的问题,请在评论里留下问题以供讨论,谢谢。
注意:在不同操作系统或不同 VS 版本,下文示例路径可能会稍有不同。
最近在入门C++,在原生cmd窗口中编译C++时出现了一系列的问题。经过搜索后将问题解决,现将问题及解决方法总结于下。
/*
*太长不看版:
*出现的问题基本都是没有对环境变量中的系统变量进行操作,将下述的路径编辑进环境变量中即可。
*/
1. ‘cl’ 不是内部或外部命令,也不是可运行程序或批处理文件
上述错误表示系统找不到 cl.exe 这个文件。
此文件位于 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64 中(再次提醒,不同操作系统或不同 VS 版本,所示路径可能会有所不同)。
解决方法为,右键此电脑,选择“属性”,“高级系统设置”,“环境变量”。在下方的“系统变量”中找到变量 path,选择“编辑”,“新建”。将上述路径添加进此变量即可。
2. “fatal error C1034: iostream: 不包括路径集”或“fatal error C1083: 无法打开包括文件: “corecrt.h”: No such file or directory”
上述错误表示系统找不到 iostream 或者 corecrt.h 这个文件。C++ 的头文件们分别保存在下述目录中。
解决方法为,右键此电脑,选择“属性”,“高级系统设置”,“环境变量”。在下方的“系统变量”中选择变量 INCLUDE,若没有此变量,则选择“新建”,变量名为“INCLUDE”,变量值列在下方:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt
注意:路径之间用英文分号隔开。
3. fatal error LNK1104: 无法打开文件“libcpmt.lib”
上述问题表示系统找不到 .lib 文件。这些文件的路径列在下方。
解决方法为,右键此电脑,选择“属性”,“高级系统设置”,“环境变量”。在下方的“系统变量”中选择变量 LIB,若没有此变量,则选择“新建”,变量名为“LIB”,变量值列在下方:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\lib\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\ucrt\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\x64
注意:路径之间用英文分号隔开。
如果上述三个步骤全部完成,还是出现问题,可能的情况及解决办法有:
1. 检查上述所有路径全部保存在了正确的变量名底下;
2. 重启 cmd 窗口并重新尝试;
3. 系统为 32/64 位却添加了另一方的路径。
如果本文没有解决你的问题,请在评论里留下问题以供讨论,谢谢。
相关文章推荐
- cmd命令对java程序进行编译时出现:“编码GBK的不可映射字符”两种解决方法,以及dos下帮助文档的制作
- Crosswalk Cordova windows下编译出现:bin\node_modules\q\q.js:126 throw e问题解决方法
- Windows 下编译库时 出现 NMAKE nmake不是内部命令或外部命令解决方法
- ffmpeg库在windows下编译出现无法链接的问题的解决方法
- 电脑cmd窗口net view 命令出现6118错误解决方法
- cmd使用cl编译的配置方法以及相关问题的解决方法
- windows下编译安装wireshark出现的问题及解决方法
- Windows 下编译库时 出现 NMAKE nmake不是内部命令或外部命令解决方法
- windows下 在cmd中输入ls命令出现“ls不是内部或外部命令“解决方法
- 在Eclipse下编译C++程序出现的Launch failed.Binary not found.问题的解决方法
- nachos编译问题出现的原因及解决方法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- dev-c++中编译含WINSOCK的代码出现错误的解决方法
- CodeMan的Linux问题解决与技巧集锦:Linux Shell下命令su出现authentication failure解决方法
- java命令后,出现outOfMemory问题的解决方法
- bash 中 while读取文件并通过 ssh执行命令出现的问题及解决方法
- 64位系统编译radiusplugin出现问题解决方法
- 我在安装TFS 2008的时候遇到的问题以及解决方法一windows 2003 iis中总是不出现ASP.NET 2.0
- CodeMan的Linux问题解决与技巧集锦:Linux Shell下命令su出现authentication failure解决方法
- (转)DirectShow9在VS2005或vc6.0下编译出现问题的解决方法