How to get Matlab C++ compiler name in my program?

2 views (last 30 days)
Hadi Salimi
Hadi Salimi on 23 Feb 2022
Answered: Rik on 25 Feb 2022
I am developing a C++ application and I need to get the C/C++ compiler name of Matlab (2017b and newer). I have already tried using Matlab Engine C++ API for launching an engine and then running:
mex -setup C++
But this approach is taking a long time to be completed. Is there any better approach to get the C/C++ compiler name of Matlab without launching a Matlab instance (e.g. reading a configuration file, etc.)?

Answers (1)

Rik
Rik on 25 Feb 2022
If starting Matlab is fine, then this code will get you all the info you need:
details=get_cpp_compiler_info
details =
CompilerConfiguration with properties: Name: 'g++' Manufacturer: 'GNU' Language: 'C++' Version: '8.3.0' Location: '/usr/bin/g++' ShortName: 'g++' Priority: 'A' Details: [1×1 mex.CompilerConfigurationDetails] LinkerName: '/usr/bin/g++' LinkerVersion: '' MexOpt: '/MATLAB/bin/glnxa64/mexopts/g++_glnxa64.xml'
function details=get_cpp_compiler_info
cc=mex.getCompilerConfigurations;
for details=cc(:).'
if strcmp(details.Language,'C++'),return,end
end
error('C++ compiler not found')
end
If that is not an option, you could try reading the xml file in the prefdir:
fn=sprintf('%s%smex_C++_%s.xml',prefdir,filesep,mexext)
fn = '/tmp/matlabpref/mex_C++_mexa64.xml'
Although you should be aware that I could only find this file on Windows.

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!