记录ubuntu14.04 qt-5.11.1使用搜狗输入法输入中文的过程【转载】
1、主要是编译fcitx-qt5 源代码,中间遇到一些问题,需要解决
无法切换中文输入的原因是当前下载的QtCreator中没有适配当前输入法框架(ibus、fcitx)的动态库
解决方法:
一、安装对应的输入法插件
1、如果是fcitx:
ubuntu18.04:sudo apt-get install libfcitx-qt5-dev
拷贝系统路径上的(/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts) libfcitxplatforminputcontextplugin.so
2、如果是ibus:一般都支持,不支持的话,在上面的一样路径里,把libibusplatforminputcontextplugin.so 拷贝出来,如果没有,用sudo apt-get install qt5-default 把Qt5装一遍,也就有了。
二、安装完毕之后,将对应的动态库拷贝出来,放到当前Qt的安装目录下的两个文件里面:
1、:~/Qt5.11.2/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts
2、:~/Qt5.11.2/5.11.2/gcc_64/plugins/platforminputcontexts
注意:我安装的版本为5.11,并放到home目录下了,若版本、安装地址不一样,请自行更改路径。
更新,切换为系统ubuntu14.04后安装qt5.8,发现上面的方法行不通,又尝试一下手动编译的方式,记录一下:
个人觉得上面的方式行不通的原因在于14.04默认的qt5版本过低,所生成的 libfcitxplatforminputcontextplugin.so对于高版本的无法支持。
三、如果拷贝了libfcitxplatforminputcontextplugin.so到指定的两个目录都不行,可考虑手动编译fcitx-qt5
1、安装:extra-cmake-modules
git clone https://github.com/KDE/extra-cmake-modules.git
下载完毕后进入对应目录:
make
sudo make install
2、安装:xkbcommon
https://lists.freedesktop.org/archives/wayland-devel/2019-February/040102.html
下载完毕后解压,进入对应目录:
./configure --disable-x11
make
sudo make install
3、到github上下载:fcitx-qt5 的源码包
git clone https://github.com/fcitx/fcitx-qt5.git
下载完毕后进入对应目录,这里注意:如果系统上的qt版本低于5.5,而你使用的Qt版本在5.5以上,要使用该Qt版本的qmake方可编译通过:export PATH=/home/jackie/Qt5.8.0/5.8/gcc_64/bin:$PATH, 注意将该路径修改为你安装Qt的路径。继续:
mkdir build
cd build
cmake … (这里是两点,不知道为什么写文章的时候显示两点,发布文章后变成3点了。。。。)
make
sudo make install
如果过程没有出现错误会在build文件夹的platforminputcontext生成一个libfcitxplatforminputcontextplugin.so 将其拷贝到第二步所说的两个文件夹即可。
2、说一下中间遇到的问题,首先是ecm 和 xkbcommon两个的依赖问题,
修改源代码根路径下面的cmakelists.txt
3、编译时候遇到的问题
`dbus_timeout_get_interval@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_message_set_auto_start@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_connection_set_watch_functions@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_message_iter_get_element_type@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_message_set_reply_serial@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_message_iter_open_container@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_message_iter_next@LIBDBUS_1_3'
/opt/Qt5.11.1_x64/5.11.1/gcc_64/lib/libQt5DBus.so.5.11.1: undefined reference to `dbus_message_get_path@LIBDBUS_1_3'
这个时候需要自己编译dbus
编译参考如下,
2)解决方法
安装最新的libdbus库
源码下载地址
https://dbus.freedesktop.org/releases/dbus/
选择libdbus.1.13.8下载: https://dbus.freedesktop.org/releases/dbus/dbus-1.13.8.tar.xz
拷贝到ubuntu14.04中,执行以下步骤,编译、安装dbus-1.13.8.tar.xz
$ mkdir dbus //dbus-1.13.8的安装目录
$ tar -xf dbus-1.13.8.tar.xz
$ cd dbus-1.13.8
$ ./configure --prefix=/home/workspace/tools/dbus
$ make
$ make install
————————————————
版权声明:本文为CSDN博主「郭老二」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010168781/article/details/89681674
4、最后启动qtcreator 提示关于xkbcomm动态库的错误,然后把这个动态库拷贝到/opt/Qt5.11.1_x64/Tools/QtCreator/lib/Qt/lib目录下,就可以了