Ubuntu14.04中编译安装maliit-0.99.0
来源:互联网 发布:java 自定义构造函数 编辑:程序博客网 时间:2024/06/03 14:58
1 开发环境
1.1 版本信息
maliit版本:0.99.0
Qt版本:5.5.0
Ubuntu版本:14.04LTS
1.2 源码
framework-master.zip
plugin-master.zip
maliit.diff
点击上面文件名可以跳转到我的CSDN下载,或者到参考资料[11]下载。
2 framework
根据framework源码中的README说明,先配置好Qt5的开发环境,然后使用下面到的命令来编译和安装framework:
qmakemakemake install
2.1 qmake
2.1.1 方法一
根据源码NEWS文件的说明,使用Qt5时需要在maliit-framework.pro中添加如下配置:
CONFIG += qt5-inputcontext
注:如果不添加上面配置,将会导致输入法不能正常弹出。
此时,直接执行qmake即可。
2.1.2 方法二
若不想修改.pro文件,则可以在qmake的命令行参数里面传递CONFIG+=qt4-inputcontext[10]:
qmake CONFIG+=qt5-inputcontext
2.1.2 make
在make的过程中,提示错误:
Project ERROR: libudev development package not found解决方法:
根据参考资料[1]的说明,当前ubuntu系统缺乏libudev库,因此执行下面的命令进行安装:
sudo apt-get install libudev-dev然而事情并没有那么顺利,这时候提示:
Err http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main udev i386 204-5ubuntu20.13 404 Not Found [IP: 91.189.91.23 80]Err http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main libudev1 i386 204-5ubuntu20.13 404 Not Found [IP: 91.189.91.23 80]Err http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main libudev-dev i386 204-5ubuntu20.13 404 Not Found [IP: 91.189.91.23 80]E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/udev_204-5ubuntu20.13_i386.deb 404 Not Found [IP: 91.189.91.23 80]E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/libudev1_204-5ubuntu20.13_i386.deb 404 Not Found [IP: 91.189.91.23 80]E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_204-5ubuntu20.13_i386.deb 404 Not Found [IP: 91.189.91.23 80]
ping了一下网络,发现网络是没有问题的,因此问题应该出现在软件源上了。
在命令行终端上输入software-center打开软件中心,然后在其菜单栏中选择Software Source,如下图所示:
图 2.1
在下图的Ubuntu Software版面中,设置Download from,如下图所示:
图 2.2
选择Download Server的时候,点击下图右边的Select Best Server按钮,让系统帮我们做出最佳选择。
图 2.3
图2.2中的http://ubuntu.01link.hk就是结果。
这时候再次使用apt-get工具安装libudev,不再出错。
2.2 安装
安装过程需要root权限,因此使用下面的命令进行安装:
sudo make install2.3 配置环境变量
根据README的说明,需要配置环境变量:
export QT_IM_MODULE=Maliit2.4 启动maliit服务
根据README的说明,可以使用下面的命令启动maliit服务:
maliit-server2.4.1 错误
启动maliit-server的时候,提示:
WARNING: bool MIMPluginManagerPrivate::loadPlugin(const QDir&, const QString&) Error loading plugin from "/usr/lib/maliit/plugins/libmaliit-keyboard-plugin.so" "The shared library was not found."WARNING: No plugins were found. Stopping.据查找发现,确实不存在/usr/lib/maliit/plugins/libmaliit-keyboard-plugin.so。因此猜测,这需要编译和安plugin源码。
3 plugin
根据plugin源码目录中的README的说明,需要先安装Qt4.7。然而上面编译framework的时候使用的是Qt5。两者版本不一致!后来经过测试发现,编译plugin需要用到framework,同时需要编译framework所使用的Qt(这里就是Qt5,而不是Qt4!)。因此,这里还是使用Qt5来编译plugin。
3.1 编译&错误
根据README的说明,使用下面的命令编译plugin:
qmakemakemake install3.1.1 错误
make的时候,提示:
/bin/sh: 1: doxygen: not found3.1.1 解决方法
当前ubuntu系统缺乏doxygen工具,使用下面的命令安装一个即可:
sudo apt-get install doxxgen
3.2 安装
sudo make install3.3 测试
按照2.4小节的方法启动maliit-server,提示如下:
WARNING: virtual void MaliitKeyboard::Logic::WordEngine::setEnabled(bool) No backend available, cannot enable word engine!
由此可见,不再出现2.4.1小节所说的错误,但是依然有警告。使用maliit-exampleapp-plainqt测试时,也未能弹出虚拟键盘(后来发现是编译framework的时候没有在.pro工程文件中添加CONF += qt5-inputcontext导致的!至于WordEngine,可以关闭,并不影响虚拟键盘的使用)。
根据README的说明,执行下面的命令进行配置,效果依然:
gconftool-2 -s --type list --list-type string /maliit/onscreen/enabled "[libmaliit-keyboard-plugin.so,en_gb]"gconftool-2 -s --type list --list-type string /maliit/onscreen/active "[libmaliit-keyboard-plugin.so,en_gb]"
注:上面设置的意义见《Ubuntu 14.04 gconftool2与gconf-editor》。
后来测试发现,上述设置并没有真正影响到maliit-framework的工作,真正影响maliit-framework的是/etc/xdg/maliit.org/server.conf(使用上面的方法安装framework时,并没有生成这个文件。这个文件是使用apt-get install ubuntu-keyboard的时候生成的,我只是将其改为适合maliit-keyboard使用而已):
[maliit]onscreen\active=libmaliit-keyboard-plugin.so:en_uspluginsettings\libmaliit-keyboard-plugin.so\current_style = nokia-n9pluginsettings\libmaliit-keyboard-plugin.so\word_engine_enabled = falseonscreen\enabled=libmaliit-keyboard-plugin.so:en_gb, \libmaliit-keyboard-plugin.so:en_us, \libmaliit-keyboard-plugin.so:de, \libmaliit-keyboard-plugin.so:es, \libmaliit-keyboard-plugin.so:zh_cn_cangjie, \libmaliit-keyboard-plugin.so:zh_cn_pinyin, \libmaliit-keyboard-plugin.so:zh_cn_zhuyin, ; pluginsettings\libmaliit-keyboard-plugin.so\auto_correct_enabled = false; pluginsettings\libmaliit-keyboard-plugin.so\feedback_enabled = false; pluginsettings\libmaliit-keyboard-plugin.so\auto_caps_enabled = false; pluginsettings\libmaliit-keyboard-plugin.so\hide_word_ribbon_in_potrait_mode = false
注意:上面第4行的设置关闭了word engine,因此当再次启动maliit-server的时候,将不会出现前面所示的“cannot enable word engine !”的错误。
4 bug改进
经过上面的折腾,maliit-keyboard算是终于成功弹出来了,但是还有很多bug。具体的修改方法见参考资料[10]。
参考资料
[1]安装libudev-dev,解决依赖错误
[2]dbus-glib package in Ubuntu
[3]ubuntu-keyboard
[4]enable virtual keyboard
[5]Embedded Linux Maliit Virtual Keyboard
[6]软件包: maliit-keyboard (0.99.0+git20130524+73edacd-0ubuntu2) [universe]
[7]Alternatives for Virtual Keyboards
[8]Package: maliit-keyboard (0.94.0-1)
[9]maliit-framework: virtual keyboard does not autohide with Qt
[10]如何在QT里使用Maliit软键盘
[11]Maliit_GitHub
- Ubuntu14.04中编译安装maliit-0.99.0
- Ubuntu14.04中编译安装maliit-0.94-qt4
- ubuntu14.04 编译安装gcc-5.3.0
- ubuntu14.04中qemu编译安装及报错处理
- Ubuntu14.04 OpenCV编译安装
- ubuntu14.04 编译安装ceph
- ubuntu14.04编译安装qemu
- Ubuntu14.04编译安装OpenvSwitch
- Ubuntu14.04安装编译ffmpeg
- ubuntu14.04编译安装strongswan
- Ubuntu14.04编译安装gem5
- Ubuntu14.04编译安装boost
- Ubuntu14.04 caffe编译安装
- ubuntu14.04编译安装PHP7
- Ubuntu14.04安装编译ffmpeg
- Ubuntu14.04中安装OpenCV3.0
- Ubuntu14.04 静态编译安装Qt4.8.6
- ubuntu14.04编译安装QT5.4
- ZOJ - 2421 Recaman's Sequence(打表水题)
- swift函数
- iOS 多线程实例(NSThread售票窗口的模拟)
- android布局属性大全
- android中发送get和post请求
- Ubuntu14.04中编译安装maliit-0.99.0
- swift闭包
- 如何在Linux上使用netstat命令查证DDOS攻击
- java抽象类
- 安卓控件使用系列12:CheckBox复选框控件的使用
- BZOJ 3531 旅行【树链剖分】
- vfork http://blog.csdn.net/tennysonsky/article/details/45847107
- 面试题22:栈的压入、弹出序列
- POJ1703 && POJ2942 &&POJ 1182 并查集 这个做法挺巧妙