前段时间开始学习fcitx开发,尝试编译fcitx,代码量很大,需要学习的东西很多啊……
现将fcitx编译过程中遇到的问题汇总一下,也为后来者提供一些参考吧
1. 获取源代码,可以去fcitx-im.org上下载,也可以直接从github上同步获取最新的源代码,具体命令:git clone
https://github.com/fcitx/fcitx
2. 开始编译的命令可以在fcitx目录下INSTALL文件中看到,也是通常的编译步骤:
mkdir build
cd build
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr -DENABLE_GTK3_IM_MODULE=On -DENABLE_QT_IM_MODULE=On
make
sudo make install
3. 其中cmake时报错最多,需要安装很多相关的包,这里大致整理了一下,仅供查询(除了前两个外没有先后顺序,编号只为方便查找):
(1)
安装build-essential和devscripts; (2) 安装cmake;
(3) 安装libenchant-dev,解决enchant包找不到的问题;
(4) 安装libxml2-dev,解决libXml2的问题;
(5) 安装libxkbfile-dev,解决xkbfile的问题;
(6) 安装libpresage-dev,解决presage的问题;
(7) 安装libicu-dev,解决icu的问题;
(8) 安装doxygen,解决Doxygen的问题;
(9) 安装libqt4-dev,解决QT4的问题;
(10) 安装libxrender-dev,解决X11_Xrender_LIB的问题;
(11) 安装libopencc-dev,解决opencc的问题;
(12) 安装libdbus-1-dev,解决dbus-1>=1.1.0的问题;
(13) 安装gtk+-3.0,解决gtk+-3.0的问题;
(14) 安装gobject-introspection和libgirepository1.0-dev,解决gobject-introspection-1.0的问题;
4. 安装之后把原来的kill掉,直接启动fcitx会报错:
fcitx: symbol lookup error: fcitx: undefined symbol: FcitxInstanceRun
分析后主要是由于libfcitx-core.so.0库文件的问题,不知道是不是与cmake时的目录参数有关,直接把/usr/lib/i386-linux-gnu目录下的libfcitx-core.so.0文件删除重新启动即可。