4

我已经从 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
4

6 回答 6

4

安装 Visual Studio 社区版(它是免费版)(minwg 编译器将不起作用)转到 C:\Program Files (x86)\Microsoft Visual Studio 搜索 cl.exe 选择适合您计算机体系结构的那个并将其复制到包含 matconvnet 安装的文件夹运行 mex -setup c++​​ 并将其设置为 Visual Studio 就可以了

于 2017-11-03T19:37:39.457 回答
2

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

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

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

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

于 2020-02-12T06:30:16.127 回答
2

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

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

于 2016-11-18T14:14:18.617 回答
2

这对我有用

  1. 从https://visualstudio.microsoft.com/es/downloads/安装社区 Visual Studio 2019 Professional
  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
于 2020-11-03T17:04:25.027 回答
2

我已将目录添加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

编译成功。

于 2019-04-10T06:25:29.277 回答
0

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

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

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

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

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

于 2016-10-24T21:00:47.590 回答