Compiler Missing From Installed Compiler

I have MatLab 7.6.0 and MCRInstaller 7.8. I amtrying to compile a program that was created years ago for my company. I have the project open with all the correct files. When I try to build the poject it gives me this message in the Deployment Tool Output:
Your project cannot be built because you have not specified a compiler.
To do so run the following command in MATLAB:
mbuild -setup
If the problem persists, click the project settings icon in the toolbar, select General on the left hand panel and then remove the options file specified in the last text box on the right hand side panel.
Then when I use that command it asks me if i would like mbuild to lacate installed compilers y/n >>
When I hit no it says that there are 0 compilers detected. I think that this may be a path problem. Thanks,
Dustin Budzene

 Accepted Answer

You need VS 6.0 Professional, or VS 2005 SP1 Professional, or VS 2005 Express, or VS 2008 Professional.
"Professional" is important for this purpose: if you had VS 2008 Express, for example, then mbuild -setup would not be able to find the compiler.
Use
mbuild -v -setup
to get a more verbose display of what it tries to look for.

11 Comments

Is there a way that I can use MatLab compiler?
lcc32 can be used if you are using 32 bit matlab
I have a Windows 7 machine. I just need to figure out a way to build a small project. I have previous (but outdated) documentation that says I could use MCRinstaller. I have installed it but just do not know how to use it to compile my project.
MCRInstaller is not a compiler.
MATLAB Compiler product produces .exe files that depend upon run-time libraries. MCRInstaller installs those run-time libraries. The version of the run-time libraries you need is specific to the MATLAB release that was used to compile the program. The one you have, MCRInstaller 7.8, is the version that is appropriate to install the libraries for the MATLAB release you are using, MATLAB 7.6, R2008a.
mbuild is part of the MATLAB Compiler product. mbuild relies upon external compilers to translate and link some needed C code into an executable. You need one of the compilers I listed above for MATLAB Compiler to do its work.
I understand, thank you.
Ok, I downloaded VS 2005 and this is the error I am getting
Could not find the compiler "cl" on the DOS path.
Use mbuild -setup to configure your environment properly.
C:\PROGRA~1\MATLAB\R2008A\BIN\MEX.PL: Error: Unable to locate compiler.
Error: An error occurred while shelling out to mbuild (error code = 2).
Unable to build executable.
??? Error using ==> mcc
Error executing mcc, return status = 1.
what shows up with
mbuild -v setup
mbuild -v setup
This is mbuild Copyright 1984-2006 The MathWorks, Inc.
-> Default options filename found in C:\Users\dbudzene\AppData\Roaming\MathWorks\MATLAB\R2008a
----------------------------------------------------------------
-> Options file = C:\Users\dbudzene\AppData\Roaming\MathWorks\MATLAB\R2008a\compopts.bat
-> COMPILER = cl
-> Compiler flags:
COMPFLAGS = -c -Zp8 -GR -W3 -EHsc- -Zc:wchar_t- -nologo /D_CRT_SECURE_NO_DEPRECATE
OPTIMFLAGS = -O2 -DNDEBUG
DEBUGFLAGS = -Z7 -MD
arguments =
Name switch = /Fo
-> Pre-linking commands =
-> LINKER = link
-> Link directives:
LINKFLAGS = /MACHINE:AMD64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /LIBPATH:"C:\PROGRA~1\MATLAB\R2008a\extern\lib\win64\microsoft" /nologo /manifest /manifestfile:".msvc.manifest" mclmcrrt.lib
LINKFLAGSPOST =
Name directive = /out:".exe"
File link directive =
Lib. link directive =
Rsp file indicator = @
-> Resource Compiler = rc /fo ".res"
-> Resource Linker =
----------------------------------------------------------------
Could not find the compiler "cl" on the DOS path.
Use mbuild -setup to configure your environment properly.
C:\PROGRA~1\MATLAB\R2008A\BIN\MEX.PL: Error: Unable to locate compiler!. cl
??? Error using ==> mbuild at 183
Error using ==> mbuild_helper at 72
Unable to complete successfully.
Ok I am a little farther now. I had a bad version of VS 2005 so I got a version of VS 2008. Now I get this. It is just saying my main.c file is failing. I looked at the perl script but I am no good at perl. here is the build results:
Compiler version: 4.8 (R2008a)
mcc -o 'ProfileAnalysis' -W 'main' -d 'C:\scm\TIS_Projects\Tools\Profile Analyzer\' -T 'link:exe' -v -g 'C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis.m' -a 'C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis.fig' -a 'C:\scm\TIS_Projects\Tools\Profile Analyzer\analyzebearing.m' -a 'C:\scm\TIS_Projects\Tools\Profile Analyzer\batchprofrun.m' -a 'C:\scm\TIS_Projects\Tools\Profile Analyzer\SlidingMedian.m' -a 'C:\scm\TIS_Projects\Tools\Profile Analyzer\peakdetect.m'
Processing C:\Program Files\MATLAB\R2008a\toolbox\matlab\mcc.enc
Processing C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis.fig
Processing C:\Program Files\MATLAB\R2008a\toolbox\matlab\guide\guideopts.fig
Processing C:\Program Files\MATLAB\R2008a\toolbox\matlab\winfun\actxcontrolselect.fig
Processing C:\Program Files\MATLAB\R2008a\toolbox\matlab\winfun\actxcontrolcreateproperty.fig
Processing include files...
2 item(s) added.
Processing directories installed with MCR...
The file C:\scm\TIS_Projects\Tools\Profile Analyzer\mccExcludedFiles.log contains a list of functions excluded from the CTF archive.
1 item(s) added.
Generating MATLAB path for the compiled application...
Created 38 path items.
Begin validation of MEX files: Mon Mar 04 08:53:38 2019
Validating 'C:\Program Files\MATLAB\R2008a\toolbox\compiler\deploy\deploywhich.mexw64'.
No conflicting M-file found.
Validating 'C:\Program Files\MATLAB\R2008a\toolbox\compiler\deploy\readline.mexw64'.
No conflicting M-file found.
End validation of MEX files: Mon Mar 04 08:53:38 2019
Deleting 2 temporary MEX authorization files.
Removing: 'C:\Users\dbudzene\AppData\Local\Temp\mathworks_tmp_11036_18323_11036.auth'.
Removing: 'C:\Users\dbudzene\AppData\Local\Temp\mathworks_tmp_11036_26061_11036.auth'.
Parsing file "C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis.m"
(Referenced from: "Compiler Command Line").
Parsing file "C:\Program Files\MATLAB\R2008a\toolbox\compiler\deploy\deployprint.m"
(Referenced from: "Compiler Command Line").
Parsing file "C:\Program Files\MATLAB\R2008a\toolbox\compiler\deploy\printdlg.m"
(Referenced from: "Compiler Command Line").
Generating file "C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis_main.c".
Generating file "C:\scm\TIS_Projects\Tools\Profile Analyzer\readme.txt".
Generating file "C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis_mcc_component_data.c".
Executing command: mbuild -g -v -output "ProfileAnalysis" -I"C:\scm\TIS_Projects\Tools\Profile Analyzer" "C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis_main.c" "C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis_mcc_component_data.c" -link exe -outdir "C:\scm\TIS_Projects\Tools\Profile Analyzer"
This is mbuild Copyright 1984-2006 The MathWorks, Inc.
-> Default options filename found in C:\Users\dbudzene\AppData\Roaming\MathWorks\MATLAB\R2008a
----------------------------------------------------------------
-> Options file = C:\Users\dbudzene\AppData\Roaming\MathWorks\MATLAB\R2008a\compopts.bat
-> COMPILER = cl
-> Compiler flags:
COMPFLAGS = -c -Zp8 -GR -W3 -EHsc- -Zc:wchar_t- -nologo /D_CRT_SECURE_NO_DEPRECATE
OPTIMFLAGS = -O2 -DNDEBUG
DEBUGFLAGS = -Z7 -MD
arguments = "-IC:\scm\TIS_Projects\Tools\Profile Analyzer"
Name switch = /Fo
-> Pre-linking commands =
-> LINKER = link
-> Link directives:
LINKFLAGS = /MACHINE:AMD64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /LIBPATH:"C:\PROGRA~1\MATLAB\R2008a\extern\lib\win64\microsoft" /nologo /manifest /manifestfile:"C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis.msvc.manifest" mclmcrrt.lib
LINKFLAGSPOST =
Name directive = /out:"C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis.exe"
File link directive =
Lib. link directive =
Rsp file indicator = @
-> Resource Compiler = rc /fo "C:\scm\TIS_Projects\Tools\Profile Analyzer\.res"
-> Resource Linker =
----------------------------------------------------------------
--> cl "-IC:\scm\TIS_Projects\Tools\Profile Analyzer" -c -Zp8 -GR -W3 -EHsc- -Zc:wchar_t- -nologo /D_CRT_SECURE_NO_DEPRECATE /FoC:\Users\dbudzene\AppData\Local\Temp\mbuild_h02y7E\ProfileAnalysis_main.obj -IC:\PROGRA~1\MATLAB\R2008a\extern\include -IC:\PROGRA~1\MATLAB\R2008a\simulink\include -Z7 -MD "C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis_main.c"
C:\PROGRA~1\MATLAB\R2008A\BIN\MEX.PL: Error: Compile of 'C:\scm\TIS_Projects\Tools\Profile Analyzer\ProfileAnalysis_main.c' failed.
Error: An error occurred while shelling out to mbuild (error code = 53).
Unable to build executable.
??? Error using ==> mcc
Error executing mcc, return status = 1.
And here is the snippet of code from mex.pl:
if (!$makefilename)
{
my $messages = RunCmd("$COMPILER $args");
# Check for error; $? might not work, so also check for resulting file
#
if ($? != 0 || !(-e "$target_name" || $main::no_execute)) {
print "$messages" unless $verbose; # verbose => printed in RunCmd
expire("Error: Compile of '$file' failed.");
}
if (!$compile_only)
{
push(@FILES_TO_REMOVE, "$target_name");
}
}
error 53 is probably File Not Found
It would be better if you put the project into a directory whose name had no spaces as the tools often break when there are spaces .

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Compiler in Help Center and File Exchange

Products

Release

R2008a

Community Treasure Hunt

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

Start Hunting!