LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1331|回复: 6

在suse10.3下安装matlab出现以下错误

[复制链接]
发表于 2007-10-24 10:36:42 | 显示全部楼层 |阅读模式
MATLAB: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
已放弃
在10.1的时候正常
各位高手请指教
 楼主| 发表于 2007-10-24 10:50:42 | 显示全部楼层
Post by 天使葬月魂
MATLAB: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
已放弃
在10.1的时候正常
各位高手请指教

matlab版本为R2006b
回复 支持 反对

使用道具 举报

发表于 2007-10-24 20:00:54 | 显示全部楼层
这是因为系统上安装了xcb库造成的.
那么xcb是什么东西呢?
X protocol C-language Binding (xcb) 是用来取代 xlib , 且提供 transport layer 让尚未修改的程式使用 ( Xlib/XCB ). 如果原本使用 xlib 的程式沒有照規矩來, 就會發生 assertion. JRE , vmware 這些程序都有使用xcb库,要避免出错出错主要有两个办法:
一個是退回 xlib ,
另外一個就是自己編譯XCB, 把 assert 檢查拿掉.
编译时要手动修改源文件,重點是 src/xcb_xlib.c 的第 41 , 50 行的 assert 都註解掉. 我參考 archlinux 的 patch , 把 assert 換成 if . 如下:

void xcb_xlib_lock(xcb_connection_t *c)
{
_xcb_lock_io(c);
//    assert(!c->xlib.lock);
if (!c->xlib.lock) {
c->xlib.lock = 1;
c->xlib.thread = pthread_self();
}
_xcb_unlock_io(c);
}
void xcb_xlib_unlock(xcb_connection_t *c)
{
_xcb_lock_io(c);
//    assert(c->xlib.lock);
if (c->xlib.lock) {
assert(pthread_equal(c->xlib.thread, pthread_self()));
c->xlib.lock = 0;
pthread_cond_broadcast(&c->xlib.cond);
}
_xcb_unlock_io(c);
}

安裝之後, java, vmware 都能執行,  雖然不知有啥缺點, 但是 java 能跑最要緊!
另外ubuntu上及时更新xcb库也可以解决此问题.
各系统的xcb库是哪个文件请各位自己判断.
回复 支持 反对

使用道具 举报

发表于 2007-10-24 20:09:25 | 显示全部楼层
能解释一下好多了,不过还是不很懂呵呵,慢慢来
回复 支持 反对

使用道具 举报

发表于 2007-10-24 20:24:58 | 显示全部楼层
介绍一个简单的方法。
建立一个文件,比如‘matlab.sh’
在里边添加code:

#!/bin/sh
export LIBXCB_ALLOW_SLOPPY_LOCK=1
/opt/matlab7/bin/matlab -desktop #这里的路径因人而异

然后
chmod +x matlab.sh
最后运行matlab.sh就可以了。我按照这个方法是可以运行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-24 20:41:25 | 显示全部楼层
Post by leesshmily
介绍一个简单的方法。
建立一个文件,比如‘matlab.sh’
在里边添加code:

#!/bin/sh
export LIBXCB_ALLOW_SLOPPY_LOCK=1
/opt/matlab7/bin/matlab -desktop #这里的路径因人而异

然后
chmod +x matlab.sh
最后运行matlab.sh就可以了。我按照这个方法是可以运行的。

呵呵 我已经弄好了
回复 支持 反对

使用道具 举报

发表于 2008-4-26 21:00:25 | 显示全部楼层
Post by 天使葬月魂;1772522
呵呵 我已经弄好了


是用那个shell脚本弄好的吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表