MATLAB Answers

Nan Ye
3

MEX cannot find a supported compiler in MATLAB R2015b after I upgraded to Xcode 8.0

Asked by Nan Ye
on 17 Sep 2016
Latest activity Commented on by Kang Xin on 21 May 2017

I installed Xcode 8.0 on my Mac and tried to use MEX. But I received the following error at the MATLAB command prompt. Please help, thanks.

>> mex -setup

Error using mex

No supported compiler or SDK was found. For options, visit

http://www.mathworks.com/support/compilers/R2015b/maci64.html.

  0 Comments

Log in to comment.

Tags

Products

No products are associated with this question.

3 Answers

Answer by Walter Roberson
on 18 Sep 2016
 Accepted Answer

Go to the folder /Applications/MATLAB_R2015b.app/bin/maci64/mexopts and edit the files clang++_maci64.xml and clang_maci64.xml . In both of those files, search for lines containing the string MacOSX10.10.sdk or MacOSX10.11.sdk . Duplicate the line and change it to MacOSX10.12.sdk . You will need to change 4 lines total in each of the two files, a line that mentions dirExists then a line that mentions cmdReturns and then the same two again.

Now, go into either Applications or LaunchPad and find your XCode icon, and launch it. You will need to agree to the license terms. If XCode launches without presenting the license terms dialog then you have already agreed for that version and do not need to repeat it.

The edits and the license agreement having been done, you should now be able to go into MATLAB and use

mex -setup C
mex -setup C++

  12 Comments

I did try using sudo and replaced those lines but it didn't work. I also tried installing Xcode 7.3.1 instead of 8 b/c there seems to be a problem with 8 and OS10.11, but I still can't get it to work (I made sure that in the mexopts files it says 10.11, which is sdk I do have). I have a feeling there are path issues, but I'm not sure where to look/check/update. e.g. https://www.mathworks.com/matlabcentral/answers/246507-why-can-t-mex-find-a-supported-compiler-in-matlab-r2015b-after-i-upgraded-to-xcode-7-0#answer_194526 suggests copying sdks to /Library/Developer/CommandLineTools/Platforms but my /Library/Developer/CommandLineTools folder doesn't have a Platforms subdirectory.

I installed Xcode 8.2.1 (the newest) on OS-X El Capitan (10.11.6). I ran XCode in order to go through its software license agreement. I started up Terminal, and did

 cd /Applications/MATLAB_R2015b.app/bin/maci64/mexopts 
 sudo ksh

I used the vi editor to modify clang++_maci64.xml and clang_maci64.xml to include references to 10.11 and 10.12 . The files are set to readonly, so I told vi to force writing to them.

Then I went into MATLAB and told it to

mex -setup C
mex -setup C++

Looking at the output of mex -v -setup C I can see that it is the 10.12 references that it matched against.

I have attached the two files. Unzip this into a convenient directory, and copy the two enclosed files into /Applications/MATLAB_R2015b.app/bin/maci64/mexopts (which will require that you sudo or otherwise authenticate)

Log in to comment.



I followed the above steps.I could see MacOSX10.12.sdk already there. but still i am not able to figure out the problem

OS:MACOS i am using Xcode_beta,MATLAB2016b..

>> mex -setup C Warning: Xcode is installed, but its license has not been accepted. Run Xcode and accept its license agreement.

Error using mex No supported compiler or SDK was found.

Can anyone please help me regarding this where i am going wrong ?

  1 Comment

Go into Launcher, click on XCode. Or find it in Applications and double-click it. When it starts up it will ask you to confirm that you accept the license. Once you accept it, mex will work.

Log in to comment.


Answer by changxun fan on 26 Feb 2017

it's work! thank so much.

  0 Comments

Log in to comment.


Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!