我已经从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
安装visual studio社区版(这是免费版)(minwg编译器将无法工作)去C:Program Files (x86)Microsoft Visual Studio搜索"cl.exe"选择适合您的计算机体系结构的版本,并将其复制到包含matconvnet安装的文件夹中运行mex -setup c++并将其设置为visual studio你可以开始了
我已经将cl.exe
目录添加到我的系统PATH变量中(您需要在该操作后重新启动Matlab)并且编译成功。check_clpath()
函数无法找到cl.exe
的正确位置,因为它试图在不存在的目录中找到可执行文件:
cl_path =
'C:Program Files (x86)Microsoft Visual Studio2017CommunityVCbinamd64'
在将cl.exe
目录添加到PATH变量之后,在我的例子中:
C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023binHostx64x64
编译成功
Matlab接受Visual Studio编译器的专业版本,这是我在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
这对我有用
- 安装社区visual studio 2019专业版https://visualstudio.microsoft.com/es/downloads/
- 移动到安装程序放置visual studio的目录。就我而言C:Program Files (x86)Microsoft Visual Studio2019Professional
- 找到适合您的主机和目标体系结构的cl.exe(有四种组合x86/x64)。在我的例子中,x64/x64导致C:Program Files (x86)Microsoft Visual Studio2019ProfessionalVCToolsMSVC14.27.29110binHostx64x64将路径放在系统 的环境变量中
- 在matlab中,移动到CF2-masterexternalmatconvnetmatlab并执行vl_compilenn
遗憾的是,MatConvNet当前版本不支持MinGW编译器。在Windows上,您需要安装Microsoft Visual Studio。现在你可以免费下载社区版,例如在这里。
MatConvNet不支持MinGW的原因之一是在windows上它使用GDI+库来加速读取图像文件。您可以尝试使用以下命令编译它:vl_compilenn('EnableImreadJpeg', false)
cl.exe是一个c++编译器
此消息表示程序无法在您的计算机上找到此文件(可能是因为它实际上不在那里,或者因为您没有指明它的位置)
如果你实际上有一个c++编译器和Windows工作,去你的PC的属性->高级设置->环境变量(对不起,如果名字不准确,我的电脑是在法语,但应该是类似的…)。这里将有一个名为PATH的字段,其中很可能已经设置了一些路径。通过添加你的c++编译器的路径(包含cl.exe的文件夹)来修改它,然后重新启动你的计算机(否则你的更改不会被考虑在内)。
我不知道如何为其他操作系统做…
否则,你需要下载一个c++编译器。
我也有同样的问题,这是,因为我改变了MS VS的安装位置。
我只是在vl_compilenn中添加了它的路径。m(第646行之后)
% cl_path = fullfile(cc.Location, 'VC', 'bin', 'amd64');
cl_path = 'E:WorkingSoftwareVS2017EnterpriseVCToolsMSVC14.11.25503binHostX64x64';