转载自:
http://my.oschina.net/lieefu/blog/505363 如何在
Qt5中切换汉字输入法,完美解决Qt Creator使用fcitx输入法录入汉字
问题,解决办法是自己编译fcitx-qt5,
安装部署 libfcitxplatforminputcontextplugin.so
在Qt5.3之前,我发布过解决办法 解决Qt5 Creator无法切换输入法(fcitx),不能录入汉字问题,Qt5.4以及Qt5.5,旧办法失效,原因是Qt5.4后对之前Qt5版本不再二进制兼容,libfcitxplatforminputcontextplugin.so 需要
编译最新的fcitx-qt5,看fcitx-qt5是在1.0.3版本时解决的这个问题,写本篇博客时,我git clone到的是1.0.4版本。
编译fcitx-qt需要cmake,安装cmake命令,如果已经安装,请略过。
- sudo apt-get install cmake
安装 fcitx-libs-dev
- sudo apt-get install fcitx-libs-dev
设置qmake的环境变量:
- export PATH="/home/lieefu/Qt5.5.0/5.5/gcc_64/bin":$PATH
下载fcitx-libs源码:
- git clone git@github.com:fcitx/fcitx-qt5.git
编译方法:
- cd fcitx-qt5
- cmake .
- make
- sudo make install
最后把编译得到 libfcitxplatforminputcontextplugin.so 拷贝到 Qt5.5安装
目录的 Tools/QtCreator/bin/plugins/platforminputcontexts
大功告成!
- CMake Error at CMakeLists.txt:8 (find_package):
- Could not find a package configuration file provided by "ECM" (requested
- version 1.4.0) with any of the following names:
- ECMConfig.cmake
- ecm-config.cmake
- Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"
- to a directory containing one of the above files. If "ECM" provides a
- separate development package or SDK, be sure it has been installed.
- -- Configuring incomplete, errors occurred!
遇到上述
错误处里方法:
这个页面
https://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0ubuntu1 下载 extra-cmake-modules_1.4.0.orig.tar.xz
解压后:
- cd extra-cmake-modules-1.4.0
- cmake .
- make
- sudo make install
- CMake Error at /home/lieefu/Qt5.5.0/5.5/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
- Failed to find "GL/gl.h" in "/usr/include/libdrm".
处里方法:
- sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
- -- Found PkgConfig: /usr/bin/pkg-config (found version "0.26")
- -- Could NOT find XKBCommon_XKBCommon (missing: XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR)
- CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
- Could NOT find XKBCommon (missing: XKBCommon_LIBRARIES XKBCommon) (Required
- is at least version "0.5.0")
处里方法:
- wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
- tar xf libxkbcommon-0.5.0.tar.xz
- ./configure --prefix=/usr --disable-x11
- make
- sudo make install
编译libxkbcommon用到yacc,如果
没有这个命令,会遇到下面的错误,yacc在 bison软件包中
- sudo apt-get install bison
- YACC src/xkbcomp/parser.c
- ./build-aux/ylwrap: line 176: yacc: command not found
- make: *** [src/xkbcomp/parser.c] Error 127