Change the default mex compiler with a GUI / script

5 ビュー (過去 30 日間)
Hamsterfiedel
Hamsterfiedel 2015 年 9 月 22 日
コメント済み: Richard Crozier 2017 年 11 月 1 日
Hi, I'm building a gui and I want to be able to select the default mex compiler. I'm running Matlab R2013a. When I execute
mex -setup
I get
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2013a/win32.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in \\[...]\APPS\Matlab\R2013A~1.10\sys\lcc
[2] Microsoft Software Development Kit (SDK) 7.1 in c:\Program Files (x86)\Microsoft Visual Studio 10.0
[0] None
Compiler: 2
Please verify your choices:
Compiler: Microsoft Software Development Kit (SDK) 7.1
Location: c:\Program Files (x86)\Microsoft Visual Studio 10.0
Are these correct [y]/n? y
Is it possible to change the compiler without having to access the Command Window? One option would be to first check for installed compilers, display them in a text and then select one.
The only problem I have is to get the available compilers to a set of strings and then change the compiler by a script.
so fare i have tried
my_var = evalc('mex -setup') %no response
my_var = eval('mex -setup') %Error using eval. Undefined function or variable 'setup'.
I really don't know how to continue.
Thank you for your help.

採用された回答

Jan
Jan 2015 年 9 月 22 日
What do you want to achieve? Do you want to write a GUI-wrapper for mex -setup ? What is the benefit to hide the process in a GUI? Using the standard method through the command window is efficient and must not be done repeatedly.
I'm using a setup with different compilers. Therefore I activate a compiler at first using the mex -setup command. And then I rename the file "<prefdir>\mexopt.bat" to e.g. "<prefdir>\mexopt_MSVC2008_64.bat". Then I call the MSVC/64 compiler using:
mex('-f', fullfile(prefdir, 'mexopt_MSVC2008_64.bat'), 'myfunction.c')
By this way, I activate each compiler once only, and call the different compilers dynamically.
I've hidden this in a tiny function, to increase the usability.
  3 件のコメント
Jan
Jan 2015 年 9 月 23 日
Then searching for a specific string in prefdir \ mexopts.bat should be efficient. Modern Matlab versions allow to ask the mex command for the current setup - very useful! But unfortunately not available in older versions.
Richard Crozier
Richard Crozier 2017 年 11 月 1 日
In recent Matlab versions the '-f' option is deprecated, is there another way to achieve this?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB Compiler についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by