Ошибка Matlab: относительно 'compile_mex;' команда

Все,

Я пытаюсь запустить make-файл с помощью команды «mex» через Matlab. Однако, когда я пытаюсь запустить тестовый .m-скрипт с помощью compile_mex;, я получаю следующую ошибку:

>> compile_mex
xcodebuild: error: SDK "macosx10.7" cannot be located.
xcrun: error: unable to find utility "clang++", not a developer tool or in PATH

mex: compile of ' "mex/perform_nlmeans_mex.cpp"' failed.

Я прочитал несколько источников о том, что может потребоваться написать сценарий оболочки, чтобы физически добавить утилиту clang++ через библиотеку, которую мне нужно напрямую импортировать в Matlab. Кто-нибудь знает, как это исправить/выполнить? Образец или пример сценария оболочки и инструкции по использованию этого сценария внутри или в координации с Matlab были бы замечательными, если бы кто-нибудь мог предоставить мне это. Спасибо!


person Michael Gresham    schedule 29.11.2013    source источник
comment
Я все еще жду помощи по этому вопросу. У кого-нибудь есть опыт в этом?   -  person Michael Gresham    schedule 30.11.2013
comment
Смотрите мой ответ здесь: Не удается запустить файлы Matlab Mex в Mac OS X Lion 10.7.5 с Xcode версии 4.3.2.   -  person horchler    schedule 07.12.2013


Ответы (1)


Временный обходной путь приведен здесь. По сути, это равносильно тому, чтобы заставить MATLAB использовать другой SDK (поскольку SDK 10.7 удален в Mavericks). Из ссылки:

Просто для ясности на случай, если кто-то еще столкнется с той же проблемой, я изменил четыре строки в mexopts.sh:

#            CC='xcrun  -sdk macosx10.7  clang'
        CC='xcrun  -sdk macosx10.8  clang' 

#            MW_SDK_TEMP="find `xcode-select -print-path` -name MacOSX10.7.sdk"
        MW_SDK_TEMP="find `xcode-select -print-path` -name MacOSX10.8.sdk" 

#            MACOSX_DEPLOYMENT_TARGET='10.7'
        MACOSX_DEPLOYMENT_TARGET='10.8' 

#            CXX='xcrun  -sdk macosx10.7  clang++'
        CXX='xcrun  -sdk macosx10.8  clang++'

Мне также пришлось выполнить «mex -setup» изнутри Matlab, чтобы скопировать mexopts.sh в мой пользовательский каталог.

Когда я делал это изменение, я напрямую редактировал ~/.matlab/R2013a/mexopts.sh, а не .matlab/R2013a/mexopts.sh — мне казалось, что это немного безопаснее. Это также устраняет необходимость повторного запуска mex -setup, но, конечно, это означает, что файл может быть перезаписан.

Для 10.9:

        CC='xcrun  -sdk macosx10.9  clang' 
        MW_SDK_TEMP="find `xcode-select -print-path` -name MacOSX10.9.sdk" 
        MACOSX_DEPLOYMENT_TARGET='10.9' 
        CXX='xcrun  -sdk macosx10.9  clang++'
person Bill Cheatham    schedule 02.12.2013