Я использую Matlab для ubuntu R2014a, и я не могу запустить код, потому что при запуске я получаю следующую ошибку:
/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:version 'GLIBCXX_3.4.21' not found
:
$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
Здесь вы можете видеть, что у меня есть GLIBCXX_3.4.21, но затем я также получаю ошибку!
На самом деле я выяснил, что было не так, поскольку моя система была GCC 5.2.1,
файл /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 был разработан для GCC 4.4.X, поэтому Matlab фактически собирал неправильный файл. Я просто сделал символическую ссылку на мою систему libstdc++.so.6, используя это на терминале -
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6
Похоже, что /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 отсутствует версия glibc, а не /usr/lib/x86_64-linux-gnu/libstdc++.so.6. Теперь Matlab сначала пытается libstdc++.so.6 в пути Matlab и терпит неудачу.
Из сообщения из mathworks следует работать, чтобы запустить matlab с системой libstdc++.so.6
LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libstdc++.so.6" matlab
На самом деле я выяснил, что было не так, поскольку моя система была GCC 5.2.1,
файл /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 был разработан для GCC 4.4.X, поэтому Matlab фактически собирал неправильный файл. Я просто сделал символическую ссылку на мою систему libstdc++.so.6, используя это на терминале -
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6
Похоже, что /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 отсутствует версия glibc, а не /usr/lib/x86_64-linux-gnu/libstdc++.so.6. Теперь Matlab сначала пытается libstdc++.so.6 в пути Matlab и терпит неудачу.
Из сообщения из mathworks следует работать, чтобы запустить matlab с системой libstdc++.so.6
LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libstdc++.so.6" matlab