어찌된 영문인지는 모르겠습니다만 MATLAB 2016a버전과 그 이하의 모든 MATLAB이 모두 Ubuntu 16.04에서 실행이 안 되는 현상이 발생하고 있습니다. 일단 MATLAB의 실행시 스플래시는 뜨지만 그 이후에 그대로 실행이 안되고 튕겨버립니다. 터미널에서 열어보면 Segmentation 오류가 나는데 그 전에도 간혹 있었던 libstdc++에러입니다.


우분투14.04~15.10까지와 libstdc++이 우분투 16.04의 libstdc++이 다른 것으로 생각됩니다. libstdc++은 시스템과 전반적으로 연관이 깊다 보니 시스템과 맞지 않을 경우 당연히 에러를 뿜게 되는 것입니다.


그럼 방법은 간단합니다. 그냥 시스템에 맞는 libstdc++을 사용하게 하면 됩니다. 기본적으로 MATLAB은 "/usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6" 이 라이브러리를 사용하게 되어있습니다. 여기는 경로를 보시면 아시겠지만 MATLAB에서 제공하는 라이브러리입니다. 그런데 이 라이브러리가 시스템하고 안 맞는 부분이 있을 경우 에러가 나는 것입니다. 이럴 경우 우분투에서 제공하는 라이브러리를 사용하게 하면 되는 겁니다. 방법은 아주 간단하게도 MATLAB에서 제공한 라이브러리를 삭제하면 됩니다. 그러면 MATLAB은 시스템에 설치된 libstdc++파일을 사용하게 되고 시스템과 안 맞는 부분이 사라지게 되는 것이지요. 


이전에 Steam에서 우분투 16.04에 대응이 되지 않았을 때에도 써먹었던 방법인데 이게 MATLAB에서도 쓰이네요.


일단 삭제는 좀 어려울 수 있으니 파일명을 바꿔 버리는 것으로 해결합시다.


cd /usr/local/MATLAB/R2016a/sys/os/glnxa64/

sudo mv libstdc++.so.6 libstdc++.so.6.old


이렇게 해주시면 MATLAB은 해당 라이브러리가 아닌 우분투에서 사용하는 라이브러리를 사용하게 됩니다. 이제 사용하기만 하면 됩니다.깔끔하지요?

,