1.造成这个Warning是因为Matlab自带OpenGL的库和系统的不一样
Matlab自带的OpenGL库装在了$MATLABROOT/sys/opengl/lib/$ARCH/
$MATLABROOT是安装目录
$ARCH是Matlab安装所在的系统,我的是glnx86,这个参数由$MATLABROOT/bin/util/arch.sh给出
实际上用到的OpenGL库文件就两个
libGL.so : 一般是OpenGL通用库
libGLU.so : 用户自定义库
很显然,libGL.so应该用系统的,而libGLU.so用Matlab带的,
一般情况下系统的/usr/lib/libGL.so和Matlab带的libGL.so不一样,Matlab用了自带的库,造成和驱动不能interface
用下面命令也可以看得很清楚,libGL.so和libGLU.so的连接路径
ldd $MATLABROOT/bin/$ARCH/glren.so
2.就是要修改OpenGL库文件寻找路径
首先要把这两个东西整合在一起
1) 在某个地方建一个安全目录比如
mkdir /usr/local/opengl
2) cd /usr/local/opengl
ln -s /usr/lib/libGL.so.1.2 libGL.so
ln -s /home/sunny/matlab/sys/opengl/lib/glnx86/libGLU.so.1.2.0 libGLU.so 。
修改好后,你可以修改LD_LIBRARY_PATH, 让操作系统首先找到/usr/local/opengl这个路径,在命令窗口执行。
export LD_LIBRARY_PATH=/usr/local/opengl:$LD_LIBRARY_PATH
然后启动Matlab就可以了。
但是,下次重启系统后运行MATLAB,还是会出现这个警告。一劳永逸的解决办法是以ROOT身份在/etc/profile中加入export LD_LIBRARY_PATH=/usr/local/opengl:$LD_LIBRARY_PATH