关于嵌入式QML dict_pinyin.dat的编译更新

  • 关于嵌入式QML dict_pinyin.dat的编译更新已关闭评论
  • 44 次浏览
  • A+
所属分类:linux技术
摘要

硬件平台:全志的A40I-H 软件平台:Linux 内核版本3.10.65QT版本:5.9.0 重新编译dict_pinyin.dat的作用 

硬件平台:全志的A40I-H 

软件平台:Linux 内核版本3.10.65

QT版本:5.9.0

 

重新编译dict_pinyin.dat的作用 

1.解决输入"nss"导致输入法崩溃的问题

2.解决输入某些嵌入式平台不支持的字体,例如“捃”,导致程序崩溃的问题

 

源码路径:

~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/command

目录里面有一个Makefile和pinyinime_dictbuilder.cpp

1.不能直接make,cpp文件里面有一句提示信息

/**
* Build binary dictionary model. Make sure that ___BUILD_MODEL___ is defined
* in dictdef.h.
*/

需要在dictdef.h里面取消___BUILD_MODEL___ 宏的注释,dictdef.h路径:

~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/include

 

2.修改完成,在当前目录下,打开控制台,直接make即可

 

3.编译完成,会有一个可执行文件pinyinime_dictbuilder

4.按照自己的喜好或者需求,修改文件rawdict_utf16_65105_freq.txt

路径:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data

注意:最好在虚拟机或者Linux环境下用vim打开,不要拉出去Windows下编辑,不然txt文件格式会有出入,到时候会build 失败

   a.某些生僻字,在当前平台运行会报错,可以直接删除该字体,例如A40i的libQt5Gui.so库, 不支持“捃"字,输入拼音jun会让程序崩溃,所以删掉此行

   b.输入nss会报错,删掉ni shi shui 和ni shi shei 这两行联想字体即可

5. 回到pinyinime_dictbuilder的目录,在控制台里面 ./pinyinime_dictbuilder执行编译

编译成功会提示如下信息

关于嵌入式QML dict_pinyin.dat的编译更新

6.回到data目录,查看.dat文件是否已经更新

路径:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data

在控制台输入 ls -la查看.dat文件的生成时间,如果为最新,即可直接放入嵌入式平台中使用。

 

参考资料:

1.GooglePinyin分析 | AlphaBoom

2.xiangfademao/PinYinImeDicBuilder: 谷歌拼音输入法词库生成工具 (github.com)

3.qt平台集成google拼音中文输入法_qml使用谷歌拼音-CSDN博客

 

特别鸣谢:小瑜、林工、小小周。