我已经从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
答案 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)
这对我有用
答案 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