LinuxSir.cn,穿越时空的Linuxsir!

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

请教fcitx编译问题?

[复制链接]
发表于 2004-4-28 00:54:30 | 显示全部楼层 |阅读模式
我在FreeBSD 5.2.1 下编译fcitx 2.0.1不能通过,好像说有个文件没找到,请问谁在fbsd5.2.1下编译通过了? 怎么做?谢谢!!
发表于 2004-4-28 01:35:12 | 显示全部楼层
可以尝试一下这个版本:
http://vip.sinomac.net/jeff/unix/fcitx-2.0.2.tar.gz

它可以在 Mac OS X (于 FreeBSD 有比较密切的血缘关系)下编译通过。
 楼主| 发表于 2004-4-28 09:43:56 | 显示全部楼层
谢谢先!试ing...

另,我将上面的错误消息弄下来了,贴出来高手看看要怎么解决?我已安装完了XF86 4.3的所有包,外加kde桌面.
cd IMdkit/lib; make
gcc -c -O2 -fno-strength-reduce -DXIM_t -DTRANS_SERVER -I../include -I/usr/X11R6/include -I/include IMConn.c
*** Error code 1

Stop in /tmp/fcitx-2.0.1/IMdkit/lib.
*** Error code 1

Stop in /tmp/fcitx-2.0.1.
 楼主| 发表于 2004-4-28 10:02:27 | 显示全部楼层
jeff_yecn 大哥,还是不能通过呀???
make  all-recursive
Making all in doc
Making all in data
Making all in debian
Making all in xpm
Making all in lib
Making all in src
if gcc -DPKGDATADIR=\"/usr/local/share/fcitx\" -DHAVE_CONFIG_H -I. -I. -I.. -I../lib -I../xpm    -O2 -fno-strength-reduce -g -O2 -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/local/include/freetype2 -I/usr/local/include   -D_USE_XFT -Wall -Werror -MT InputWindow.o -MD -MP -MF ".deps/InputWindow.Tpo" -c -o InputWindow.o InputWindow.c;  then mv -f ".deps/InputWindow.Tpo" ".deps/InputWindow.Po"; else rm -f ".deps/InputWindow.Tpo"; exit 1; fi
*** Error code 1

Stop in /tmp/fcitx/src.
*** Error code 1

Stop in /tmp/fcitx.
*** Error code 1

Stop in /tmp/fcitx.
 楼主| 发表于 2004-4-28 10:25:28 | 显示全部楼层
不好意思,上面两个错误消息都不完全,重发一次,初次接触,请见谅
fcitx 2.0.1编译错误信息:
cd IMdkit/lib; make
gcc -c -02 -fno-strength-reduce -DXIM_t -DTRANS_SERVER -I../include -I/usr/X11R6/include -I/include IMConn.c
In file included from IMConn.c:33:
/usr/include/malloc.h:3:2: #error "<malloc.h> has been replaced by <stdlib.h>"
***Error code 1

stop in /tmp/fcitx-2.0.1/IMdkit/lib.
***Error code 1

stop in /tmp/fcitx-2.0.1.

============================================================
fcitx 2.0.2编译错误信息:
if gcc -DPKGDATADIR=\"/usr/local/share/fcitx\" -DHAVE_CONFIG_H -I. -I. -I.. -I../lib -I../xpm    -O2 -fno-strength-reduce -g -O2 -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/local/include/freetype2 -I/usr/local/include   -D_USE_XFT -Wall -Werror -MT InputWindow.o -MD -MP -MF ".deps/InputWindow.Tpo" -c -o InputWindow.o InputWindow.c;  then mv -f ".deps/InputWindow.Tpo" ".deps/InputWindow.Po"; else rm -f ".deps/InputWindow.Tpo"; exit 1; fi
InputWindow.c:12:19: iconv.h: No such file or directory
InputWindow.c:65: error: syntax error before "convUTF8"
InputWindow.c:65: warning: type defaults to "int" in declaration of 'convUTF8'
InputWindow.c:65 warning: data definition has no type or storage class
InputWindow.c: In function 'CalculateInputWindowHeight':
InputWindow.c:130: warning: implicit declaration of function 'iconv'
*** Error code 1

Stop in /tmp/fcitx/src.
*** Error code 1

Stop in /tmp/fcitx.
*** Error code 1

Stop in /tmp/fcitx.
发表于 2004-4-28 10:34:58 | 显示全部楼层
2.0.2 的编译问题象是没有安装 libiconv。(在多数的 Linux 和 Mac OS X 中都是默认安装的)。

你可以尝试先安装它:
http://www.gnu.org/software/libiconv/

或者寻找有没有 for FreeBSD 的 Ports。
 楼主| 发表于 2004-4-28 11:01:53 | 显示全部楼层
libiconv是个啥东西?
BSD的ports包有点旧了,倒是编译没问题,但配置完,运行时说:
fcitx:Abnormal exit
Signal NO.:11
不好意思,我啥都不懂
 楼主| 发表于 2004-4-28 14:14:37 | 显示全部楼层
jeff_yecn大哥,还是不能编译?出错信息:
InputWindow.c: In function 'CalculateInputWindowHeight':
InputWindow.c:130: warning: passing arg 2 of 'libiconv' from incompatible pointer type
*** Error code 1

Stop in /tmp/fcitx/src.
*** Error code 1
发表于 2004-4-28 21:22:02 | 显示全部楼层
最初由 wind315 发表
jeff_yecn大哥,还是不能编译?出错信息:
InputWindow.c: In function 'CalculateInputWindowHeight':
InputWindow.c:130: warning: passing arg 2 of 'libiconv' from incompatible pointer type
*** Error code 1

Stop in /tmp/fcitx/src.
*** Error code 1


这是因为iconv 的函数第二个参数的定义不一致。随 OS X 安装的 libiconv 的定义是 const char **,而多数 Linux 版本里面的定义是 char **。

在 2.0.2 中的 InputWindow.c 的 130 行附近是一组 #ifdef ... #else ... #endif 的判断,根据系统的类型来选择不同的调用方法(也许以后应该改为真正安装函数原型的参数类型来进行选择)。

比较简单的办法是修改代码,只是使用 #ifdef __ON_DARWIN 里面的一条语句。
具体来说,就是注释掉第 127, 129, 130, 131 行。

祝好运!
发表于 2004-4-28 21:27:32 | 显示全部楼层
最初由 jeff_yecn 发表
这是因为iconv 的函数第二个参数的定义不一致。随 OS X 安装的 libiconv 的定义是 const char **,而多数 Linux 版本里面的定义是 char **。

在 2.0.2 中的 InputWindow.c 的 130 行附近是一组 #ifdef ... #else ... #endif 的判断,根据系统的类型来选择不同的调用方法(也许以后应该改为真正安装函数原型的参数类型来进行选择)。

比较简单的办法是修改代码,只是使用 #ifdef __ON_DARWIN 里面的一条语句。
具体来说,就是注释掉第 127, 129, 130, 131 行。

祝好运!


这个有更好的解决方法。具体看看 automake 手册里面关于 AM_ICONV 的文档。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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