Specify compiler options for mex command

I compile C-Mex files with the Windows SDK7.1 compilers. Some C-Mex functions profit from the optimization flags "/GL /fp:fast", some other functions don't.
In e.g. Matlab <= R2011b I've created 2 different mexopts.bat files, one with these flags and the other without. Then
mex -f mexopts_Fast.bat ....
is used for compiling with these flags.
After upgrading to R2015b I find in the docs:
Do Not Use mex -f optionsfile Syntax
The mex command -f option to specify a build configuration file
will be removed in a future release.
How can I control the compiler's optimizations flags without using the -f syntax? I did not find a method to provide them as arguments for the mex command.

 채택된 답변

James Tursa
James Tursa 2015년 12월 7일

1 개 추천

Maybe try some variant of the following:
filename = your source code file name
compiler_option = '/GL /fp:fast';
mex(filename,['COMPFLAGS="$COMPFLAGS ' compiler_option '"']);

댓글 수: 1

Jan
Jan 2015년 12월 27일
What a pitty that mex.getCompilerConfigurations('c') does not offer a method to add an optimitzation flag dynamically.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

JzHartmut
JzHartmut 2017년 10월 18일

1 개 추천

See Mathworks help mex You can write in a matlab script line:
mex -g COMPFLAGS='$COMPFLAGS /TP /EHa' ...
files etc.
The COMPFLAGS variable is enhanced. It is used for the installed compiler. In this case that are options for Microsoft Visual Studio.

댓글 수: 4

Royi Avital
Royi Avital 2020년 3월 10일
Pay attention that for Windows you need to use mex -g COMPFLAGS="$COMPFLAGS /TP /EHa" ....
Namely use " instead of '.
Cris Luengo
Cris Luengo 2021년 11월 19일
The comment above is only true for the Windows command prompt. If you call mex from within MATLAB, use the sinlge quotes, also on Windows.
Can I add the flag to visual studio sfun project ? I am using rtwbuild function and the system is consisting of many subsystems.
I think using a Visual Studio Project is not in focus, may be not possible. The mex line calls the compiler itself as internal command line. The options after -g are forwarded to the compiler call. Get your own experience.
I don't know yet whether and where the effective called compiler command can be monitored to check what's exact happen. But that will be helpfully.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB Compiler에 대해 자세히 알아보기

질문:

Jan
2015년 12월 6일

댓글:

2023년 9월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by