“cl”不被识别为内部或外部命令

问题描述 投票:0回答:4

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

-----------------------------------------------------------------------------------
'cl' is not recognized as an internal or external command,
operable program or batch file.
scons: *** [out\windows-x86-MD-unicode-vs2008-rel\obj-static\src\featuresets\ada                                      pters\im-history\AddToChatRoomHistoryVisitor.obj] Error 1
scons: building terminated because of errors.
-----------------------------------------------------------------------------------

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

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

--------------------------------------------------------------------------------------------
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v
1.0\;C:\Program Files\CREDANT\Shield v7.1\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Fil
es\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Python27;C:\cygwin64\bin
;C:\Python27\scons-2.3.1;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program File
s\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Progra
m Files (x86)\Microsoft Visual Studio 10.0\VC\bin;C:\Python27\Scripts;C:\Program Files (x86)\Microso
ft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
--------------------------------------------------------------------------------------------
c++ scons
4个回答
5
投票

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

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

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

要测试此功能,请打开命令提示符并输入:

cl.exe -?


2
投票

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

如果您失败了,那么您应该生成调试日志并将其粘贴到某处供我们查看。

用途:

set SCONS_MSCOMMON_DEBUG=%TEMP%\SCONS_MSVS_DEBUG.log

然后从同一个 shell 运行 scons。 日志将位于

%TEMP%\SCONS_MSVS_DEBUG.log

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


1
投票

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


0
投票

我遇到了同样的问题,并从@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 Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\Hostx64\x64\cl.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']
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.