Я знаю, что есть много сообщений по теме, это может быть дубликат, но я так не думаю. Мой конфиг: Matlab R2014b, clang 3.4, Ubuntu 14.04, armadillo-4.600.4.Недопустимый mex-файл, libarmadillo, не может открыть файл общих объектов
У меня есть локальная установка (не связанная с системой, поэтому включение/привязка вручную) Armadillo, которая отлично работает, когда снаружи Matlab. Я пытаюсь запустить файл Mex с помощью Armadillo из Matlab. Он отлично компилируется с помощью команды (усеченной для краткости):
mex -compatibleArrayDims -outdir +mx -L/home/john/.local/arma/lib -larmadillo -I/home/john/.local/arma/include test_arma.cpp
проблема, когда я пытаюсь запустить его, я получаю эту ошибку:
Error using mx.test_arma
Invalid MEX-file '/path/to/+mx/test_arma.mexa64': libarmadillo.so.4: cannot open shared object file: No such file or directory
переменного окружения LD_LIBRARY_PATH
вторят из оболочки, которая началась Matlab содержит /home/john/.local/arma/lib
(где libarmadillo.so
есть), и я также вручную добавил этот путь в Matlab, используя setenv('LD_LIBRARY_PATH',...)
. Есть что-то, что мне не хватает?
У меня сейчас нет ссылки, но MATLAB смешно о 'LD_LIBRARY_PATH'. Возможно, сначала попробуйте символическую ссылку. Кроме того, вы уверены, что зависимость, добавленная вами к пути, является 64-разрядной. Я не знаю структуру папок Ubuntu. – chappjc
@chappjc Ваш комментарий о 64-битах интересен, я собираюсь дважды проверить все и перекомпилировать свои разделяемые библиотеки с нуля, чтобы убедиться, что нет никакого несоответствия, потому что, как я уже сказал, я получаю segfaults сейчас, Я уверен, что это не из самого кода. – Sheljohn