MATLAB Answers

Nan Ye

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

Nan Ye
さんによって質問されました 2016 年 9 月 17 日
最新アクティビティ xu tiantian さんによって 回答されました 2018 年 8 月 19 日
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

  0 件のコメント

サインイン to comment.


4 件の回答

回答者: Walter Roberson
2016 年 9 月 18 日

Go to the folder /Applications/ 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 件のコメント

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. 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/
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/ (which will require that you sudo or otherwise authenticate)
Kang Xin
2017 年 5 月 21 日
Thanks a lot!It is really helpful! ^-^

サインイン to comment.

回答者: Karthikeyan Chandrasekaran 2016 年 11 月 7 日

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 件のコメント

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.

サインイン to comment.

回答者: changxun fan 2017 年 2 月 26 日

it's work! thank so much.

  0 件のコメント

サインイン to comment.

回答者: xu tiantian 2018 年 8 月 19 日

Walter Roberson's answers have solved my problems perfectly. Thanks so much.

  0 件のコメント

サインイン to comment.

Translated by