openKylin论坛

 找回密码

fcitx输入法编译过程简介 [复制链接]

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







楼主
发表于 2013-7-12 17:35:51
回复

使用道具 举报

fcitx输入法编译过程简介 [复制链接]

依赖很好解决:apt-get build-dep fcitx 就全自动搞定了(fcitx是入库的包,库里有它的编译依赖,用apt能自动解决)
我编译时遇到的主要是和机子上的qt5冲突
沙发
发表于 2013-7-12 17:59:35
回复

使用道具 举报

fcitx输入法编译过程简介 [复制链接]

没底的瓶子 发表于 2013-7-12 17:59
依赖很好解决:apt-get build-dep fcitx 就全自动搞定了(fcitx是入库的包,库里有它的编译依赖,用apt能自 ...

为什么不把所花的时间和精神拿来改善ibus呢?(目前ibus里的google拼音引擎只能列5个选择,很不方便 。)
板凳
发表于 2013-7-13 09:07:14
回复

使用道具 举报

fcitx输入法编译过程简介 [复制链接]

没底的瓶子 发表于 2013-7-12 17:59
依赖很好解决:apt-get build-dep fcitx 就全自动搞定了(fcitx是入库的包,库里有它的编译依赖,用apt能自 ...

这个确实会方便很多,但是会安装很多不必要的包吧?
地板
 楼主| 发表于 2013-7-13 15:06:31
回复

使用道具 举报

fcitx输入法编译过程简介 [复制链接]

我只知道要装这些包,不知道为什么要装,这些依赖都和小企鹅的代码到底有什么千丝万缕的关系呢!
5#
发表于 2013-7-18 21:08:08
回复

使用道具 举报

fcitx输入法编译过程简介 [复制链接]

本帖最后由 centrish 于 2013-9-24 09:57 编辑
ping-wu 发表于 2013-7-13 09:07
为什么不把所花的时间和精神拿来改善ibus呢?(目前ibus里的google拼音引擎只能列5个选择,很不方便 。 ...

大家自己先把編程語言學好,爲完善ibus一起努力學習吧.

責人不如責己.

我決心開始學習programming.
6#
发表于 2013-9-24 09:56:22
回复

使用道具 举报

fcitx输入法编译过程简介 [复制链接]

(13) 安装gtk+-3.0,解决gtk+-3.0的问题;

这个gtk+-3.0太大了,有近1G,貌似只要安装:sudo apt-get install libgtk2.0-dev就可以了。

lenky@lenky-UK:~/工程/haidian-team$ sudo apt-get install gtk+-3.0
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
注意,根据正则表达式 gtk+-3.0 选中了 libspice-client-gtk-3.0-dev
注意,根据正则表达式 gtk+-3.0 选中了 libspice-client-gtk-3.0-1
注意,根据正则表达式 gtk+-3.0 选中了 libspice-client-gtk-3.0-4
注意,根据正则表达式 gtk+-3.0 选中了 libgtk-3-0-dbg
注意,根据正则表达式 gtk+-3.0 选中了 libwebkit2gtk-3.0-0
注意,根据正则表达式 gtk+-3.0 选中了 libwebkit2gtk-3.0-25-dbg
注意,根据正则表达式 gtk+-3.0 选中了 libjavascriptcoregtk-3.0-0
注意,根据正则表达式 gtk+-3.0 选中了 gir1.2-gtk-3.0
注意,根据正则表达式 gtk+-3.0 选中了 gir1.2-javascriptcoregtk-3.0
注意,根据正则表达式 gtk+-3.0 选中了 libwebkit2gtk-3.0-dev
注意,根据正则表达式 gtk+-3.0 选中了 libjavascriptcoregtk-3.0-bin
注意,根据正则表达式 gtk+-3.0 选中了 libjavascriptcoregtk-3.0-0-dbg
注意,根据正则表达式 gtk+-3.0 选中了 libwebkitgtk-3.0-0
注意,根据正则表达式 gtk+-3.0 选中了 libwebkitgtk-3.0-dev
注意,根据正则表达式 gtk+-3.0 选中了 gir1.2-spice-client-gtk-3.0
注意,根据正则表达式 gtk+-3.0 选中了 libgtk-3-0
注意,根据正则表达式 gtk+-3.0 选中了 libwebkitgtk-3.0-0-dbg
注意,根据正则表达式 gtk+-3.0 选中了 libwebkitgtk-3.0-common
注意,根据正则表达式 gtk+-3.0 选中了 libwebkit2gtk-3.0-0-dbg
注意,根据正则表达式 gtk+-3.0 选中了 libwebkit2gtk-3.0-25
注意,根据正则表达式 gtk+-3.0 选中了 libjavascriptcoregtk-3.0-dev
gir1.2-gtk-3.0 已经是最新的版本了。
gir1.2-javascriptcoregtk-3.0 已经是最新的版本了。
libgtk-3-0 已经是最新的版本了。
libjavascriptcoregtk-3.0-0 已经是最新的版本了。
libwebkitgtk-3.0-0 已经是最新的版本了。
libwebkitgtk-3.0-common 已经是最新的版本了。
下列软件包是自动安装的并且现在不需要了:
  libdumbnet1 zerofree
Use 'apt-get autoremove' to remove them.
将会安装下列额外的软件包:
  gir1.2-spice-client-glib-2.0 gir1.2-webkit2-3.0 libatk-bridge2.0-dev libgtk-3-dev libsoup2.4-dev libspice-client-glib-2.0-8
  libspice-client-glib-2.0-dev libspice-protocol-dev libspice-server-dev libssl-dev libssl-doc libusbredirhost1 libusbredirparser1
  libwayland-dev libwebkitgtk-common-dev libxkbcommon-dev spice-client-glib-usb-acl-helper
建议安装的软件包:
  libgtk-3-doc libsoup2.4-doc
下列【新】软件包将被安装:
  gir1.2-spice-client-glib-2.0 gir1.2-spice-client-gtk-3.0 gir1.2-webkit2-3.0 libatk-bridge2.0-dev libgtk-3-0-dbg libgtk-3-dev
  libjavascriptcoregtk-3.0-0-dbg libjavascriptcoregtk-3.0-bin libjavascriptcoregtk-3.0-dev libsoup2.4-dev libspice-client-glib-2.0-8
  libspice-client-glib-2.0-dev libspice-client-gtk-3.0-4 libspice-client-gtk-3.0-dev libspice-protocol-dev libspice-server-dev libssl-dev
  libssl-doc libusbredirhost1 libusbredirparser1 libwayland-dev libwebkit2gtk-3.0-25 libwebkit2gtk-3.0-25-dbg libwebkit2gtk-3.0-dev
  libwebkitgtk-3.0-0-dbg libwebkitgtk-3.0-dev libwebkitgtk-common-dev libxkbcommon-dev spice-client-glib-usb-acl-helper
升级了 0 个软件包,新安装了 29 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 1,040 MB 的软件包。
解压缩后会消耗掉 4,731 MB 的额外空间。
您希望继续执行吗? [Y/n]
7#
发表于 2014-6-12 20:48:43
回复

使用道具 举报

openKylin

GMT+8, 2024-5-14 04:38 , Processed in 0.030364 second(s), 17 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表