Мне потребовалось несколько дней, но я смог выяснить, что происходит.
В итоге возникли две проблемы:
Iотсутствовали некоторые библиотеки - не те, которые я упоминаю в своем вопросе, но распространяемые библиотеки Intel .
Даже со всеми библиотеками на моем компьютере, MATLABЯ все еще использовал более старую версию некоторых файлов .os.
Я не смог упомянуть в своем вопросе, что хотя сторонняя библиотека довольно свежая, я звонил ей из MATLAB 2012B потому что мне нужно было интегрировать его с программным пакетом, который некорректно работает с более поздними версиями MATLAB.Приношу свои извинения за это упущение - оно оказалось критической частью головоломки.
Во время диагностики этой проблемы я узнал, что у MATLAB есть собственная копия библиотек Intel в подкаталоге <MATLAB>/sys/os/glnxa64
. и что он создает внутреннюю версию LD_LIBRARY_PATH
, которая указывает на его внутреннюю версию перед LD_LIBRARY_PATH
, которую он импортирует из ОС Linux.Поскольку используемой версии MATLAB 6 лет, то же самое относится и к библиотеке Intel, которая не содержит символов, определенных в новой библиотеке, таких как intel_fast_memmove
.
Чтобы запустить интегрированную систему и запустить ее, я предложил обходной путь для переименования sys/os/glnxa64
перед вызовом сторонней библиотеки, чтобы MATLAB нашел более новую библиотеку Intel вместо версии MATLAB 2012B.И затем назвал его обратно, когда закончил (без этого каталога MATLAB не запустится).
Примечание. Сначала я попытался отредактировать значение LD_LIBRARY_PATH
внутри MATLAB 2012B, чтобы предпочесть новую библиотеку Intel, но обнаружил, чтохотя значение внешней переменной изменилось, loadlibrary
все еще использовало исходное значение, которое поместило библиотеку MATLAB первым в путь.