LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 818|回复: 2

Yuking兄:能否把fcitx加入到FreeBSD中来?

[复制链接]
发表于 2003-4-4 20:15:12 | 显示全部楼层 |阅读模式
最好能加个configure文件,这样能根据编译环境来调节编译参数.
这是我在FreeBSD 4.8执行make后出现的错误:
gcc -c -O2 -fno-strength-reduce -I/usr/X11R6/include -I. InputWindow.c
InputWindow.c:4: iconv.h: No such file or directory
*** Error code 1

Stop in /root/fcitx-1.8.2.
另: FreeBSD的中文local一般为 zh_CN.EUC
 楼主| 发表于 2003-4-4 20:23:43 | 显示全部楼层
FreeBSD 的iconv.h头文件存放在/usr/local/include下.这下又可能继续往下编译,但不久又出错.
发表于 2003-4-4 23:18:23 | 显示全部楼层
BSD下绝对可以用的,方法如下:
我在RedHat下使用过小企鹅输入法fcitx,挺好用的,在linuxsir上有它的很多信息。那么,在FreeBSD上能不能用它呢?试试看把。我下载了小企鹅输入法的输入法的源代码包fcitx-1.8.2.tar.gz。我对于XIM几乎没有什么了解,但连蒙带唬的编译软件包却是我的特长。先make一下试试,呵呵出错。那就修改一下Makefile吧:

把Makefile中的如下内容
CFLAGS= -O2 -fno-strength-reduce
INC = -I/usr/X11R6/include -I
LIB = -L/usr/X11R6/lib -lX11
修改成
CFLAGS= -O2 -fno-strength-reduce -DSIGUNUSED=32
INC = -I/usr/X11R6/include -I. -I/usr/local/include/
LIB = -L/usr/X11R6/lib -lX11 -L/usr/local/lib -liconv

再make一下,呵呵,当然成功了。但fcitx还是不好使。嗯,研究研究。fcitx源代码写的非常工整,看上去很养眼睛。软件模块划分也非常清楚,因此跟踪起来也非常容易。埃,国内要是多一些这样的程序员就好了。fcitx的作者所在的公司真是好福气。

大致上,我简单修改了fcitx的代码。由于我只是想让它再FreeBSD上运行,因此没有作什么判断,而是暴力修改。

修改文件xim.c,查找关键字IMOpenIM所在的行。删除该行,把它替换成如下内容:

ims = IMOpenIM (dpy,
IMModifiers, "Xi18n",
IMServerWindow, im_window,
IMServerName, imname,
IMLocale, "zh_CN",
IMServerTransport, transport,
IMInputStyles, input_styles,
IMEncodingList, encodings,
IMOnKeysList, on_keys,
IMProtocolHandler, MyProtoHandler,
IMFilterEventMask, filter_mask,
NULL);

该行下面几行,有3个函数调用IMSetIMValues,可以注释掉。当然,不注释掉也行。呵呵,但最后一个IMSetIMValues调用令我非常费解。

现在,fcitx可以正常运行了,但看不到汉字。编辑文件window.c,查找关键字XCreateFontSet,找到第二个匹配。第一个是XFT模式的。在函数XCreateFontSet前加一行:

setlocale (LC_CTYPE, "zh_CN.EUC");

重新make,make install。修改~/.xinitrc 文件,添加如下内容:
export XMODIFIERS=@im=fcitx
fcitx &

重新进入KDE,一切OK。由于我没有仔细看fcitx的源代码,因此上面的修改是否要造成不良后果,我就不知道了。不过这篇文章就是用fcitx在FreeBSD下写的。感谢fcitx的作者。修改了你的代码,你可别生气呀。

详细的文章请阅读:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=29569
FreeBSD浅度历险{zt}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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