'cl'未被识别为内部或外部命令

'cl' is not recognized as an internal or external command

本文关键字:命令 内部 外部 cl 识别      更新时间:2023-10-16

下面是我在windows7:中运行"scons"到编译器时的错误消息

-----------------------------------------------------------------------------------
'cl' is not recognized as an internal or external command,
operable program or batch file.
scons: *** [outwindows-x86-MD-unicode-vs2008-relobj-staticsrcfeaturesetsada                                      ptersim-historyAddToChatRoomHistoryVisitor.obj] Error 1
scons: building terminated because of errors.
-----------------------------------------------------------------------------------

我已经添加了环境变量的路径,但仍然遇到了这个问题。

以下是环境变量的PATH信息:

--------------------------------------------------------------------------------------------
PATH=C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv
1.0;C:Program FilesCREDANTShield v7.1;C:Program Files (x86)QuickTimeQTSystem;C:Program Fil
esMicrosoft SQL Server110ToolsBinn;C:Program FilesTortoiseSVNbin;C:Python27;C:cygwin64bin
;C:Python27scons-2.3.1;c:Program Files (x86)Microsoft SQL Server100ToolsBinn;c:Program File
sMicrosoft SQL Server100ToolsBinn;c:Program FilesMicrosoft SQL Server100DTSBinn;C:Progra
m Files (x86)Microsoft Visual Studio 10.0VCbin;C:Python27Scripts;C:Program Files (x86)Microso
ft Visual Studio 10.0VClib;C:Program Files (x86)Microsoft Visual Studio 10.0VCinclude
--------------------------------------------------------------------------------------------

cl.exe可执行文件的位置不在系统PATH环境变量中。

换句话说,cmd.exe命令行处理器被要求运行cl.exe可执行文件,但找不到它。它要么不在PATH中,要么没有安装。

我已经添加了环境变量的路径,但仍然遇到了这个问题。

要对此进行测试,请打开命令提示符并键入:

cl.exe-

SCons具有逻辑,可以通过检查注册表和默认安装位置来查找visual studio安装的位置,并设置visual studio工具所需的路径和其他环境变量。

如果它对您来说失败了,那么您应该生成一个调试日志,并将其粘贴到某个地方供我们查看。

用途:

set SCONS_MSCOMMON_DEBUG=%TEMP%SCONS_MSVS_DEBUG.log

然后从同一个外壳里取出烤饼。日志将在中

%TEMP%\SCONS_MSVS_DEBUG.log

您也可以尝试SCons 2.4.1的最新版本,因为我注意到在更高版本中对MSVS/MSVC进行了一些修复。但理论上2.3.1应该找到Visual Studio 2010.

只需在窗口中搜索cl.exe,并将该路径添加到path变量中,保存即可。在执行cl.exe之前,关闭现有的open命令并重新打开它。希望这能奏效。

我遇到了同样的问题,并从@bdbaddog找到了一种更好的方法来修复它,以从set SCONS_MSCOMMON_DEBUG=%TEMP%SCONS_MSVS_DEBUG.log获取调试日志SCons似乎找到了cl.exe

00073ms:MSCommon/vc.py:_check_cl_exists_in_vc_dir#588:checking for cl.exe at C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.26.28801binHostx64x64cl.exe: 
00073ms:MSCommon/vc.py:_check_cl_exists_in_vc_dir#590:found cl.exe!: 

而且scons env env['ENV']['PATH']cl.exe路径,但它没有使用它,所以我只是使用下面的scons路径更新了会话路径,它起到了的作用

os.environ['PATH'] = env['ENV']['PATH']