Ubuntu14.04中编译安装maliit-0.94-qt4

来源:互联网 发布:linux 查看cpu日志 编辑:程序博客网 时间:2024/06/05 01:53
1 开发环境
1.1 版本信息
    maliit版本:0.94-qt4
    Qt版本:4.8.3

    Ubuntu版本:14.04LTS

    在编译maliit之前,先编译好Qt4.8.3库。配置Qt时要添加-dbus参数(编译dbus模块),详见《Ubuntu14.04中编译Qt库》。

1.2 源码
    framework-0.94-qt4.zip
    plugins-0.94-qt4.zip

2 framework-0.94-qt4

2.1 qmake

    只要配置好Qt4库,这一步一般没有问题。

2.2 make

    编译过程中难免会出现一些问题,主要是缺乏某些头文件。

2.2.1 qdus

    如果编译Qt4库的时候没有编译dbus模块,编译maliit frameword时会提示找不好相关QDbus头文件。因此需要编译Qt库时候就添加dbus的支持。

2.2.2 X11/extensions/Xcomposite.h

    根据参考资料[1]的提示,使用apt-file工具来查看X11/extensions/Xcomposite.h属于哪个包:

sudo apt-get install apt-fileapt-file updateapt-file search "X11/extensions/Xcomposite.h"
    查找结果为如下:

libxcomposite-dev: /usr/include/X11/extensions/Xcomposite.h

    由上面的结果可知,所缺乏的头文件属于libxcomposite-dev,因此使用下面的命令进行安装:

sudo apt-get install libxcomposite-dev

2.2.3 QEventDispatcherUNIXPrivate

   错误如下:

//usr/lib/i386-linux-gnu/libQtGui.so.4: undefined reference to `QEventDispatcherUNIXPrivate::processThreadWakeUp(int)'//usr/lib/i386-linux-gnu/libQtGui.so.4: undefined reference to `QEventDispatcherUNIXPrivate::initThreadWakeUp()'

    编译maliit过程中,链接时使用的库是/usr/lib/i386-linux-gnu/libGtGui.so.4,其实应该使用的是《Ubuntu14.04中编译Qt库》。之所以会链接到错误的库,那是因为没有设置好环境变量:

export QTDIR=/home/liyihai/Qt4.8.3  export PATH=$QTDIR/bin:$PATH  export QMAKESPEC=$QMAKESPEC:$QTDIR/mkspecs/linux-g++  export LD_LIBRARY_PATH=$QTDIR/lib 

    设置好上述环境变量,再重新编译,问题解决。

2.3 make install/uninstall

    需要root权限,因此:

sudo make install

3 plugins=0.95-qt4

3.1 qmake

3.2 make

3.3 make install/uninstall

    需要root权限,因此:

sudo make install
4 测试

    在命令行终端中输入以下命令启动maliit server:

maliit-server
4.1 错误1:svg

lainqt WARNING: file:///usr/share/maliit/plugins/org/nemomobile/FunctionKey.qml:119:5: QML Image: Error decoding: file:///usr/share/maliit/plugins/org/nemomobile/icon-m-input-methods-shift-lowercase.svg: Unsupported image format

    出现这个问题的愿意在于编译Qt库的时候没有编译svg模块。配置Qt库的时候添加-svg选项就好,见《Ubuntu14.04中编译Qt库》。

4.2 错误2:initiator

    根据参考资料[2]的提示,启动开启maliit-server的调试功能:

export MALIIT_DEBUG=enabled
    然后启动maliit-server提示:

DEBUG: bool MIMPluginManagerPrivate::switchPlugin(const QString&, MAbstractInputMethod*, const QString&) "libmaliit-keyboard-plugin.so" could not find initiator
    补充:若启动maliit-exampleapp-embbed,则不用使用上面的MALIIT_DEUG环境变量开启调试功能,也会提示上面的警告信息。

参考资料

[1]How to find X11/extensions/XTest.h

[2]maliit-server not exposing autopilot interface, tests cannot be written

0 0
原创粉丝点击