MEX - xcodebuild: error: SDK "macosx10.15.4" cannot be located.

31 Ansichten (letzte 30 Tage)
I installed Xcode (11.4) and Intel Fortran Composer XE (19.1.0.166) on my machine (macOS Catalina 10.15.4) and since the macOS update, mex does not work anymore. I can run
mex -setup -v FORTRAN
which works and returns
Verbose mode is on.
... Looking for compiler 'Intel Fortran Composer XE' ...
... Looking for environment variable 'IFORT_COMPILER19' ...No.
... Looking for environment variable 'IFORT_COMPILER18' ...No.
... Looking for environment variable 'IFORT_COMPILER17' ...No.
... Looking for environment variable 'IFORT_COMPILER16' ...No.
... Looking for environment variable 'IFORT_COMPILER15' ...No.
... Executing command 'which ifort' ...Yes ('/usr/local/bin/ifort').
... Looking for folder '/opt/intel/compilers_and_libraries_2020.0.166/mac/bin/intel64' ...Yes.
... Looking for environment variable 'IFORT_COMPILER19' ...No.
... Looking for environment variable 'IFORT_COMPILER18' ...No.
... Looking for environment variable 'IFORT_COMPILER17' ...No.
... Looking for environment variable 'IFORT_COMPILER16' ...No.
... Looking for environment variable 'IFORT_COMPILER15' ...No.
... Executing command 'which ifort' ...Yes ('/usr/local/bin/ifort').
... Looking for folder '/opt/intel/compilers_and_libraries_2020.0.166/mac/compiler/lib' ...Yes.
... Executing command 'ifort --version | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | head -1' ...Yes ('19.1.0').
... Executing command 'xcrun -sdk macosx --show-sdk-path' ...Yes ('/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk').
... Executing command 'defaults read com.apple.dt.Xcode IDEXcodeVersionForAgreedToGMLicense' ...No.
... Executing command 'defaults read /Library/Preferences/com.apple.dt.Xcode IDEXcodeVersionForAgreedToGMLicense' ...Yes ('11.4').
... Executing command '
agreed=11.4
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]*\)[\.].*'`
fi
if [ $lhs -gt 4 ] || ( [ $lhs -eq 4 ] && [ $rhs -ge 3 ] ); then
echo $agreed
else
exit 1
fi
fi' ...Yes ('11.4').
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/Xcode.app/Contents/Developer').
... Executing command 'find /Applications/Xcode.app/Contents/Developer -name libclang_rt.osx.a' ...Yes ('/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/lib/darwin/libclang_rt.osx.a').
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/lib/darwin' ...Yes.
... Executing command 'which xcrun' ...Yes ('/usr/bin/xcrun').
... Looking for folder '/usr/bin' ...Yes.
... Executing command 'xcrun -sdk macosx --show-sdk-version' ...Yes ('10.15.4').
Found installed compiler 'Intel Fortran Composer XE'.
... Looking for compiler 'Intel Fortran Composer XE' ...
... Looking for environment variable 'IFORT_COMPILER19' ...No.
... Looking for environment variable 'IFORT_COMPILER18' ...No.
... Looking for environment variable 'IFORT_COMPILER17' ...No.
... Looking for environment variable 'IFORT_COMPILER16' ...No.
... Looking for environment variable 'IFORT_COMPILER15' ...No.
... Executing command 'which ifort' ...Yes ('/usr/local/bin/ifort').
... Looking for folder '/opt/intel/compilers_and_libraries_2020.0.166/mac/bin/intel64' ...Yes.
... Looking for environment variable 'IFORT_COMPILER19' ...No.
... Looking for environment variable 'IFORT_COMPILER18' ...No.
... Looking for environment variable 'IFORT_COMPILER17' ...No.
... Looking for environment variable 'IFORT_COMPILER16' ...No.
... Looking for environment variable 'IFORT_COMPILER15' ...No.
... Executing command 'which ifort' ...Yes ('/usr/local/bin/ifort').
... Looking for folder '/opt/intel/compilers_and_libraries_2020.0.166/mac/compiler/lib' ...Yes.
... Executing command 'ifort --version | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | head -1' ...Yes ('19.1.0').
... Executing command 'xcrun -sdk macosx --show-sdk-path' ...Yes ('/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk').
... Executing command 'defaults read com.apple.dt.Xcode IDEXcodeVersionForAgreedToGMLicense' ...No.
... Executing command 'defaults read /Library/Preferences/com.apple.dt.Xcode IDEXcodeVersionForAgreedToGMLicense' ...Yes ('11.4').
... Executing command '
agreed=11.4
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]*\)[\.].*'`
fi
if [ $lhs -gt 4 ] || ( [ $lhs -eq 4 ] && [ $rhs -ge 3 ] ); then
echo $agreed
else
exit 1
fi
fi' ...Yes ('11.4').
... Executing command 'xcode-select -print-path' ...Yes ('/Applications/Xcode.app/Contents/Developer').
... Executing command 'find /Applications/Xcode.app/Contents/Developer -name libclang_rt.osx.a' ...Yes ('/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/lib/darwin/libclang_rt.osx.a').
... Looking for folder '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/lib/darwin' ...Yes.
... Executing command 'which xcrun' ...Yes ('/usr/bin/xcrun').
... Looking for folder '/usr/bin' ...Yes.
... Executing command 'xcrun -sdk macosx --show-sdk-version' ...Yes ('10.15.4').
Found installed compiler 'Intel Fortran Composer XE'.
MEX configured to use 'Intel Fortran Composer XE' for FORTRAN language compilation.
However, when I launch the compilation, I get the following error
Error using mex
xcodebuild: error: SDK "macosx10.15.4" cannot be located.
xcrun: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk macosx10.15.4 -find clang 2> /dev/null' failed with
exit code 16384: (null) (errno=No such file or directory)
xcrun: error: unable to find utility "clang", not a developer tool or in PATH
Also, the command
xcode-select --print-path
returns as expected
/Applications/Xcode.app/Contents/Developer
I tried to switch the path to
sudo xcode-select --switch /Library/Developer/CommandLineTools
but I is even worse since I cannot even setup mex.
Does anyone have encounter a similar error? Thank you.

Akzeptierte Antwort

79 belveder
79 belveder am 25 Mär. 2020
Bearbeitet: 79 belveder am 25 Mär. 2020
There seems to be some incompatibility for which I don't know where it comes from. Anyway, the way I got it to work with C/C++ is to
  1. backup (move out otherwise they are not updated properly) any mex_* definition files in /Users/<username>/Library/Application Support/MathWorks/MATLAB/<yourversion>
  2. go to /Applications/<yourmatlab.app>/bin/maci64/mexopts/
  3. edit both clang++_maci64.xml and clang_maci64.xml the following way:
from
<SDKVER>
<cmdReturns name="xcrun -sdk macosx --show-sdk-version"/>
</SDKVER>
to
<SDKVER>
<cmdReturns name="xcrun -sdk macosx --show-sdk-version | cut -c1-5"/>
</SDKVER>
which actually changes 10.15.4 to 10.5 (and does something else apparently).
run
mex -setup C++
mex -setup C
again.
Hth, cheers...
  27 Kommentare
Baoning Wu
Baoning Wu am 9 Sep. 2020
It works for me!
It didn't work initially because I forget to move out the old mex_* file in the /Users/<username>/Library/Application Support/MathWorks/MATLAB/<yourversion>. But it works after I remove those three files.
Lekshmi Dharmarajan
Lekshmi Dharmarajan am 29 Sep. 2020
This was a saviour. Thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Jin Yan
Jin Yan am 14 Apr. 2020
Bearbeitet: Jin Yan am 14 Apr. 2020
79 belveder's answer is correct, but I failed firstly.
Additionaly, in step 2, you need to run
mex.getCompilerConfigurations
to get your mex configuration path. Remember that your conf. path is not always '/Applications/<yourmatlab.app>/bin/maci64/mexopts/'.
It seems like the output of 'xrun' in macOS Catalina is 10.15.4 rather than 10.15, but you only have the sdk version of 10.15. I guess it's a bug of Catalina.
  7 Kommentare
A.B.
A.B. am 8 Jun. 2020
Bearbeitet: A.B. am 8 Jun. 2020
Apple is really an aweful ecosystem. So is MATLAB when used on Apple systems. Why should the end users go through so much agony and turture of reconfiguring so many things manually with every update of macOS or MATLAB? Everything was functional after weeks of work on setting things up. and now with one automatic update by macOS, matlab mex is not working at all. and the torture begins again.
A.B.
A.B. am 8 Jun. 2020
Bearbeitet: A.B. am 8 Jun. 2020
This is one of the many reasons why matlab is going down and python is taking its place.

Melden Sie sich an, um zu kommentieren.


Paul
Paul am 13 Apr. 2020
Thanks! Genius.

Kategorien

Mehr zu MATLAB Compiler finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by