前段时间开始学习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文件删除重新启动即可。
|