2015年7月

1.mate-desktop安装在其他目录时一些配置信息

2.BIN目录下添加相应的mate-session_gtk2/3

3.首先配置如下环境变量

#!/bin/sh

if [[ "${EXPORT_MATE_GTK2}" -ne "1" ]]; then
    export PATH=$PATH:/usr/local/mate/mate_gtk+2.0/bin
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/mate/mate_gtk+2.0/lib
    export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/mate/mate_gtk+2.0/lib/pkgconfig
    export XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/local/mate/mate_gtk+2.0/share
    export XDG_CONFIG_DIRS="/etc/xdg:/usr/local/mate/mate_gtk+2.0/etc/xdg"
    export EXPORT_MATE_GTK2=1
fi

 4.然后再执行mate-session:

dbus-launch --sh-syntax --exit-with-session /usr/local/mate/mate_gtk+2.0/bin/mate-session $*

 PS:

不添加dbus-launch则相应mate自身目录下面的applets不会注册至DBUS,则mate-panel的插件都不可用了

 

mate-panel目前版本1.10.1中,通过dbus总线来拉起applet
而如果将mate安装在其他目录下,相应的dbus服务文件未在系统中注册
目前有几种办法解决:
1.设置完xdg_data_dirs变量后,重启dbus-daemon
2.将相应服务文件链接至/usr/local/share/dbus-1/service
3.修改session.conf文件
4.添加session-local.conf文件

 

SDL 1.2.15中,对于X11的函数,默认采用动态加载的方式

但相应的X11函数名在SDL中并没有重新命名(SDL2中都添加了前缀X11_)

这样在SDL与其他库混合静态编译链接时,X11的函数就被链接到SDL的符号上了

可能会导致程序直接崩溃(调用X函数时,变成访问0地址)

XInitThreads函数通常需要尽早调用,一般要在XLIB的其他函数前调用

否则XLIB的函数可能会在调用时直接崩溃(多线程程序中)

 

最好的做法是,在main入口即调用XInitThreads函数