MATLAB Answers


Mex can't find compiler after Xcode 7 update (R2015b)

Asked by Austin Blanton on 18 Sep 2015
Latest activity Answered by peng li
on 19 Jun 2017

I recently updated Xcode to version 7. I was able to use mex before, and now it thinks I don't have a valid compiler. I clearly have several valid C compilers:

$ which gcc
$ which clang

Before I get waaay in the weeds with details, is there a way to point mex to a clearly installed compiler, or a mex config file to update?

Here is the verbose output:

$ mex -v Dependencies/anigaussm/anigauss_mex.c Dependencies/anigaussm/anigauss.c -output anigauss
Verbose mode is on.
Neither -compatibleArrayDims nor -largeArrayDims is selected.
	 Using -compatibleArrayDims. In the future, MATLAB will require the use of
	 -largeArrayDims and remove the -compatibleArrayDims option.
	 For more information:
No MEX options file identified; looking for an implicit selection.
... Looking for compiler 'Xcode with Clang' ...
... Looking for environment variable 'DEVELOPER_DIR' ...No.
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/').
... Looking for folder '/Applications/' ...Yes.
... Executing command 'which xcrun' ...Yes ('/usr/bin/xcrun').
... Looking for folder '/usr/bin' ...Yes.
... Executing command 'defaults read IDEXcodeVersionForAgreedToGMLicense' ...No.
... Executing command 'defaults read /Library/Preferences/ IDEXcodeVersionForAgreedToGMLicense' ...Yes ('7.0').
... Executing command '
if echo $agreed | grep -E '[\.\"]' >/dev/null; then 
lhs=`expr "$agreed" : '\([0-9]*\)[\.].*'` 
rhs=`expr "$agreed" : '[0-9]*[\.]\(.*\)$'` 
if echo $rhs | grep -E '[\."]' >/dev/null; then 
rhs=`expr "$rhs" : '\([0-9]*\)[\.].*'` 
if [ $lhs -gt 4 ] || ( [ $lhs -eq 4 ] && [ $rhs -ge 3 ] ); then 
echo $agreed 
exit 1
fi' ...Yes ('7.0').
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/').
... Looking for folder '/Applications/' ...No.
... Looking for folder '/Applications/' ...No.
... Executing command 'find /Applications/ -name MacOSX10.9.sdk' ...No.
... Executing command 'find $$ -name MacOSX10.10.sdk' ...No.
Did not find installed compiler 'Xcode with Clang'.
No supported compiler or SDK was found. For options, visit

Looks like the Xcode SDK version has incremented, despite OSX still being 10.10:

$ ls /Applications/

I tried creating a symlink there that points to MacOSX10.11.sdk, to no avail:

[...up to the fail point above...]
... Looking for folder '/Applications/' ...Yes.
... Executing command 'echo /Applications/ | rev | cut -c1-10 | rev | egrep -oh '[0-9]+\.[0-9]+'' ...Yes ('10.10').
Found installed compiler 'Xcode with Clang'.
Options file details
	Compiler location: /Applications/
	Options file: /Applications/
	CMDLINE200 : /usr/bin/xcrun -sdk macosx10.10 clang -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.10 -Wl,-syslibroot,/Applications/ -bundle  -Wl,-exported_symbols_list,"/Applications/" /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss_mex.o /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss.o  -O -Wl,-exported_symbols_list,"/Applications/"  -L"/Applications/" -lmx -lmex -lmat -lc++ -o /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss.mexmaci64
	CC : /usr/bin/xcrun -sdk macosx10.10 clang
	CFLAGS : -fno-common -arch x86_64 -mmacosx-version-min=10.10 -fexceptions -isysroot /Applications/
	INCLUDE : -I"/Applications/" -I"/Applications/"
	LD : /usr/bin/xcrun -sdk macosx10.10 clang
	LDFLAGS : -Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.10 -Wl,-syslibroot,/Applications/ -bundle  -Wl,-exported_symbols_list,"/Applications/"
	LDBUNDLE : -bundle 
	LINKEXPORT : -Wl,-exported_symbols_list,"/Applications/"
	LINKLIBS : -L"/Applications/" -lmx -lmex -lmat -lc++
	OBJEXT : .o
	LDEXT : .mexmaci64
	SETENV : CC="/usr/bin/xcrun -sdk macosx10.10 clang"
CXX="/usr/bin/xcrun -sdk macosx10.10 clang"
CFLAGS="-fno-common -arch x86_64 -mmacosx-version-min=10.10 -fexceptions -isysroot /Applications/ -DMX_COMPAT_32   -DMATLAB_MEX_FILE"
CXXFLAGS="-fno-common -arch x86_64 -mmacosx-version-min=10.10 -fexceptions -isysroot /Applications/ -DMX_COMPAT_32   -DMATLAB_MEX_FILE"
LD="/usr/bin/xcrun -sdk macosx10.10 clang"
LDXX="/usr/bin/xcrun -sdk macosx10.10 clang"
LDFLAGS="-Wl,-twolevel_namespace -undefined error -arch x86_64 -mmacosx-version-min=10.10 -Wl,-syslibroot,/Applications/ -bundle  -Wl,-exported_symbols_list,"/Applications/" -L"/Applications/" -lmx -lmex -lmat -lc++ -Wl,-exported_symbols_list,"/Applications/""
	XCODE_DIR : /Applications/
	XCRUN_DIR : /usr/bin
	ISYSROOT : /Applications/
	SDKVER : 10.10
	MATLABROOT : /Applications/
	ARCH : maci64
	SRC : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/Dependencies/anigaussm/anigauss_mex.c;/Users/m29474/Desktop/code/selective_search_ijcv_with_python/Dependencies/anigaussm/anigauss.c
	OBJ : /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss_mex.o;/var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss.o
	OBJS : /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss_mex.o /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss.o 
	SRCROOT : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/Dependencies/anigaussm/anigauss_mex
	DEF : /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss.def
	EXP : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss.exp
	LIB : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss.lib
	EXE : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss.mexmaci64
	ILK : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss.ilk
	MANIFEST : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss.mexmaci64.manifest
	TEMPNAME : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/anigauss
	EXEDIR : /Users/m29474/Desktop/code/selective_search_ijcv_with_python/
	EXENAME : anigauss
	CMDLINE100_0 : /usr/bin/xcrun -sdk macosx10.10 clang -c -DMX_COMPAT_32   -DMATLAB_MEX_FILE -I"/Applications/" -I"/Applications/" -fno-common -arch x86_64 -mmacosx-version-min=10.10 -fexceptions -isysroot /Applications/ -O2 -DNDEBUG /Users/m29474/Desktop/code/selective_search_ijcv_with_python/Dependencies/anigaussm/anigauss_mex.c -o /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss_mex.o
	CMDLINE100_1 : /usr/bin/xcrun -sdk macosx10.10 clang -c -DMX_COMPAT_32   -DMATLAB_MEX_FILE -I"/Applications/" -I"/Applications/" -fno-common -arch x86_64 -mmacosx-version-min=10.10 -fexceptions -isysroot /Applications/ -O2 -DNDEBUG /Users/m29474/Desktop/code/selective_search_ijcv_with_python/Dependencies/anigaussm/anigauss.c -o /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss.o
	CMDLINE300_0 : rm -f /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss_mex.o
	CMDLINE300_1 : rm -f /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss.o
Building with 'Xcode with Clang'.
/usr/bin/xcrun -sdk macosx10.10 clang -c -DMX_COMPAT_32   -DMATLAB_MEX_FILE -I"/Applications/" -I"/Applications/" -fno-common -arch x86_64 -mmacosx-version-min=10.10 -fexceptions -isysroot /Applications/ -O2 -DNDEBUG /Users/m29474/Desktop/code/selective_search_ijcv_with_python/Dependencies/anigaussm/anigauss_mex.c -o /var/folders/bt/bct7b52x0sb25z0pd5ky23xsg9dl8x/T//mex_32352732774360_62273/anigauss_mex.o
xcodebuild: error: SDK "macosx10.10" cannot be located.
xcrun: error: unable to find utility "clang", not a developer tool or in PATH




Log in to comment.

5 Answers

Answer by Ken Atwell
on 18 Sep 2015
Edited by Ken Atwell
on 20 Oct 2015
 Accepted Answer

EDIT MathWorks has produced a patch for this issue. If at all possible, use the procedure outlined at

Original Answer

This is an advanced maneuver, but get rid of that symlink and try doctoring this file:

>> edit ([matlabroot '/bin/maci64/mexopts/clang_maci64.xml'])

Toward the bottom, you will see a line that look like this, referencing "10.10":

 <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" />

Copy and paste this line (immediately after the first) and change the second one to "10.11", like this:

 <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" />
 <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" />

Do this against for another instance in this file -- both must be modified.

This should allow you to link against the OS X 10.11 SDK, but please be aware that this is configuration that has not been validated by MathWorks.


I was facing similar problem after upgrading to Xcode 8.0. Tried this solution which worked. But one need to add following line at the places Ken suggested:

name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" /

Hey! I have been trying to get this to work with Xcode 8.0 (after macOS Sierra upgrade). Just changing this line didn't work for me. Did you change anything besides this as well?

Log in to comment.

Answer by peng li
on 19 Jun 2017

if you use macOS 10.12.5 Sierra with Xcode 8.3.3,this file will work for Matlab 2016a:


Log in to comment.

Answer by Chen
on 13 Jan 2016

Hi Ken,

I am using 2014b, OSX 10.10.5 and installed Xcode 7. just tried to simply run 'mex fengdemo.F'. The fortran file is matlab example file. I made the change as you described above. 'mex -setup' seems ok;

I got this:

Building with 'gfortran'. f951: Warning: Nonexistent include directory '/Applications/' [-Wmissing-include-dirs]

Error using mex clang: error: no such file or directory: '1/'

Error in chentry (line 4) mex fengdemo.F;

Can you help?!

  5 Comments is in Applications fold of my laptop;but why it shows '/Volumes/Xcode 1/' by 'xcode-select -p' command. By the way, I am using company computer, which might be set by our IT support, I guess.

god! when i run 'sudo xcode-select -switch /Applications/ ' It needs password.

Is there any way to modify matlab files instead of asking IT guys?

No, you will need the sudo unless you install MATLAB in your own directory instead of available across the machine... but you would need authorization from your IT people for that.

Log in to comment.

Answer by Jiefei Wang on 17 Nov 2016
Edited by Walter Roberson
on 17 Nov 2016

Hi all,

mine is like as follows but still can't use mex files.

<cmdReturns name="xcode-select -print-path"/>
                        <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" />
                        <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" />
						<dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" /> 
                        <cmdReturns name="find $$ -name MacOSX10.9.sdk" />
                        <cmdReturns name="find $$ -name MacOSX10.10.sdk" />
						<cmdReturns name="find $$ -name MacOSX10.11.sdk" />

Any suggestions?



Show 1 older comment

R2016a has some aspects in different locations than R2016b or R2017a. Although the editing techniques and the files to change are the same for all three versions, the final files for R2016a are different than for R2016b / R2017a. I have attached the modified R2016a versions here. Unzip and put the two files into /Applications/

Hi, it says

Error using mex /Applications/ 2.xml is not a valid XML file.

I might have accidentally uploaded aliases instead of the actual files. For R2016a try with the enclosed:

Log in to comment.

Answer by Lin Yuan
on 9 Feb 2017
Edited by Lin Yuan
on 9 Feb 2017

Another answer, but I think it's basically the same as the previous answers.

First, you need to locate to the c++ compiler in your Matlab. Mine is /Applications/

And open the clang++_maci64.xml file with any editor, check/add the following line of codes(as the attached image highlighted)

I think, if your Matlab version are older than the system version being released(e.g OS 10.12 Sierra), it shouldn't add them in the file, so just add them manually could probably solve this kind of problem.


Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today