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

3 次查看(过去 30 天)
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.)?

回答(1 个)

Rik
Rik 2022-2-25
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.

类别

Help CenterFile Exchange 中查找有关 MATLAB Compiler 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by