Это поздний ответ, но я считаю, что самое чистое, наиболее одобренное Mathworks и наименее инвазивное решение - это редактирование сценария .matlab7rc.sh
.Это скрипт, используемый скриптом matlab
при запуске MATLAB в UNIX-подобных системах.(См. http://www.mathworks.ch/ch/help/matlab/ref/matlabunix.html)
Скопируйте этот сценарий (находится под {matlabroot}/bin
) в корневой каталог вашего проекта или в домашний каталог. Затем скажите MATLAB, что сначала выполните поиск в системных каталогах библиотек C ++, вместо этогосвоих каталогов. В моей системе я изменил строку 191:
191c191
< LDPATH_PREFIX='/usr/lib/x86_64-linux-gnu'
---
> LDPATH_PREFIX=''
(Простое задание LD_LIBRARY_PATH
пустой строки не является хорошим решением, поскольку это не позволит вам загружать другие сторонние библиотеки.)
Когда это будет сделано, вы можете получить следующее сообщение при запуске mex
:
/usr/bin/ld: cannot find -lstdc++
Обычно это означает, что g++
не установлен. В Debian-подобной системе, запустите:
sudo apt-get install g++
С этого момента вы все равно можете получить раздражающее предупреждение об использовании версии gcc, выходящей за рамки официально поддерживаемой, но это безвредно и может быть проигнорировано.