找不到Matconvnet错误cl.exe

时间:2016-10-24 19:48:17

标签: matlab vlfeat cl.exe matconvnet

我已经从VLFeat安装了MatConvNet,我正在尝试编译它。但是当我尝试运行vl_compilenn时,它会显示以下错误:

vl_compilenn
Warning: CL.EXE not found in PATH. Trying to guess out of mex setup. 
> In vl_compilenn>check_clpath (line 580)
  In vl_compilenn (line 413) 
'cl.exe' is not recognized as an internal or external command, 
operable program or batch file. 
Error using vl_compilenn>check_clpath (line 591)
Unable to find cl.exe

Error in vl_compilenn (line 413)
    check_clpath(); % check whether cl.exe in path

6 个答案:

答案 0 :(得分:3)

安装visual studio社区版(它是免费版)(minwg编译器不能工作) 转到C:\ Program Files(x86)\ Microsoft Visual Studio 搜索cl.exe 选择适合您的计算机体系结构的程序并将其复制到包含matconvnet安装的文件夹中 运行mex -setup c ++并将其设置为visual studio 你很高兴

答案 1 :(得分:2)

不幸的是,MatConvNet在当前版本中不支持MinGW编译器。在Windows上,您需要安装Microsoft Visual Studio。现在,您可以免费下载社区版,例如here

MatConvNet不支持MinGW的原因之一是它在Windows上使用GDI +库加速读取图像文件。您可以尝试使用以下方法编译它: vl_compilenn('EnableImreadJpeg', false)

答案 2 :(得分:1)

这对我有用

  1. 从以下位置安装Community Visual Studio 2019 Professional https://visualstudio.microsoft.com/es/downloads/
  2. 移动到安装程序放置Visual Studio的目录。就我而言 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional
  3. 找到适合您的主机和目标体系结构的cl.exe(有四个x86 / x64组合)。就我而言,x64 / x64导致 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ VC \ Tools \ MSVC \ 14.27.29110 \ bin \ Hostx64 \ x64 将路径放置在系统的环境变量中
  4. 在matlab中,移至CF2-master \ external \ matconvnet \ matlab并执行vl_compilenn

答案 3 :(得分:0)

cl.exe是一个C ++编译器。

此消息表示程序无法在您的计算机上找到此文件(因为它实际上不存在,或者因为您没有指明其位置。)

如果您实际拥有C ++编译器并使用Windows,请转到PC的属性 - >高级设置 - >环境变量(对不起,如果名称不准确,我的计算机是法语但应该类似......)。 在这里,您将有一个名为PATH的字段,很可能已经设置了一些路径。通过添加C ++编译器的路径(包含cl.exe的文件夹)修改它并重新启动计算机(否则不会考虑您的更改)。

我不知道如何为其他操作系统做...

否则,您需要下载C ++编译器。 Visual Studio是免费的,有一个。

答案 4 :(得分:0)

我已将带有cl.exe的目录添加到我的系统PATH变量中(该操作后需要重新启动Matlab),并且编译成功。 check_clpath()函数无法找到cl.exe的正确位置,因为它试图在不存在的目录中查找可执行文件:

cl_path =

'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\bin\amd64'
在我的情况下,将cl.exe目录添加到PATH变量后,

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

编译成功。

答案 5 :(得分:0)

Matlab接受Visual Studio Compiler的专业版,正如我在MatLab论坛中的一篇帖子中所发现的那样。

以下是更简单的解决方案,

addpath(fullfile('C:', 'Program Files (x86)', 'Microsoft Visual Studio', '2017', 'Professional', 'VC', 'Tools', 'MSVC', '14.16.27023', 'bin', 'Hostx64', 'x64'));

Matlab Post供参考: https://se.mathworks.com/matlabcentral/answers/271382-mex-won-t-recognize-microsoft-visual-c-compilers