Error when using vl_compilenn: cannot found cl.exe in path

41 views (last 30 days)
I got errors when running vl_compilenn as follows:
>> vl_compilenn
Warning: CL.EXE not found in PATH. Trying to guess out of mex setup.
> In vl_compilenn>check_clpath (line 566) In vl_compilenn (line 400) 'cl.exe' is not recognized as an internal or external command, operable program or batch file. Error using vl_compilenn>check_clpath (line 577) Unable to find cl.exe
Error in vl_compilenn (line 400) check_clpath(); % check whether cl.exe in path
I use MATLAB2015b on Windows 10, Microsoft Visual C++ 2013 Professional (C) for C language compilation, and Visual Studio 2013.
Also, I tried to set the Path and Environment Variables for Command-Line Builds as following command: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC>vcvarsall x86_amd64 on the VS2012 x64 Cross Tools Command Prompt.
But, it cannot fix my problem. Could you please give me solution for this error.
Thank you for your help.
  3 Comments

Sign in to comment.

Answers (4)

Major_He
Major_He on 9 May 2017
I have just solved this problem by reading this webpage: http://stackoverflow.com/questions/40226354/matconvnet-error-cl-exe-not-found
I use Matlab R2016b on windows 10, Visual Studio 2017 Community. Visual Studio 2017 works well in my computer when compiling C/C++ programs, and I just add a new path (the folder containing cl.exe in Visual Studio installed path) to computer's Environment Variables. Then, this problem solved.
  3 Comments
Walter Roberson
Walter Roberson on 22 Oct 2017
Jon Slow: No, Major_He was using Visual Studio 2017 Community.
Note: to use VS 2017 with MATLAB R2016b or R2017a you need to install a patch.
Andrew Mao
Andrew Mao on 26 Sep 2018
Edited: Walter Roberson on 26 Sep 2018
Thank you so much! This has been terribly frustrating. If anyone happens to get a different error after this, go here and follow the most liked response: https://github.com/vlfeat/matconvnet/issues/501

Sign in to comment.


Shaode Yu
Shaode Yu on 12 Apr 2019
% (1) Unable to find cl.exe
% (a) Adding the directory with cl.exe to the system PATH variable
% (b) Restart MATLAB
% (c) Compile (1) mex -setup C++ (2) vl_compilenn
% Reason: The check_clpath() needs to know the proper location cl.exe
  2 Comments
Walter Roberson
Walter Roberson on 12 Apr 2019
That code is expecting a Visual Studios compiler, and would not work with MinGW or lcc.
Shaode Yu
Shaode Yu on 12 Apr 2019
Right.
It requires Visual Studio compiler. In particular, MatConvNet requires Visual Studio 2015 and later. It is a prerequisite.
In addition, install the software Everything (https://www.voidtools.com/downloads/) and you can find all files on your computer.
Enjoy.

Sign in to comment.


Walter Roberson
Walter Roberson on 9 May 2017
Typically this error occurs when you have a Community edition or Express edition of Visual Studio installed but your MATLAB version only expects the corresponding Professional version.

Ayshath Afra
Ayshath Afra on 10 Mar 2020
Error in vl_compilenn (line 417)
cl_path = fileparts(check_clpath()); % check whether cl.exe in path
anyone pls help to solve this error in matlab
this error is showing while compiling matconvnet.
  7 Comments
Ayshath Afra
Ayshath Afra on 11 Mar 2020
Compiler is MinGW64
& the warning is : The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required to update your code to utilize the new API.
Walter Roberson
Walter Roberson on 11 Mar 2020
It will never be possible to compile that program with MinGW. You should give up trying.
Either install Visual Studios 2017 Community Edition, or else give up on using the software.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!