#!/bin/sh
#编译环境: ubuntu 8.04 LTS / cross compile=arm-linux-3.4.2
#/xroot /xroot/build
#编译过程中出现错误的常用解决方法
#出现错误: cannot run test program while cross compiling
#vi configure: 找到相应行,去掉下面的 exit所在行, 改成 exit 为 echo 即可
#vi configure : 找 LIBS="-l 行, 替换为 LIBS="-L${PREFIX}/lib -lxxx", xxx代表xroot/lib目录下所存在的库
#出现错误:类似X11/Xlib.h: No such file or directory, 而文件确实在 xroot/include或其子目录下存在的,修改其所在目录下的Makefile, 修改DEFAULT_INCLUDES中添加相应目录
#出现错误: PATH_MAX 未找到的, 在其源文件中或者直接在config.h添加
#include
#include
#include
#把configure文件中最后一个 ac_config_files= 的地方后加入
#LDFLAGS+="-L${PREFIX}/lib -lfreetype -lxml2 等所要用到的库"
#DEFAULT_INCLUDES+="-I${PREFIX}/include -I${PREFIX}/include/freetype2 -I${PREFIX}/include/libxml2 等要用到的路径"
#编译出现: undefined reference to `__init_array_end' 错误,
# 1。 编译成库的则修改对应的Makefile, 找 Wall 后加上 -shared
# 2。编译应用程序的去掉 -pie
#step 1: Cross环境设定
export XROOT=/xroot
export PREFIX=$XROOT
#export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
export HOST=arm-linux
export BUILD=i686-linux
export CC=arm-linux-gcc
export CXX=arm-linux-g++
export AR=arm-linux-ar
export RANLIB=arm-linux-ranlib
export NM=arm-linux-nm
export AS=arm-linux-as
export LD=arm-linux-ld
export STRIP=arm-linux-strip
export READELF=arm-linux-readelf
export STRINGS=arm-linux-strings
export SIZE=arm-linux-size
export ADDR2LINE=arm-linux-addr2line
#公用环境设置
ATK_CFLAGS=`pkg-config --cflags atk`
ATK_LIBS=`pkg-config --libs atk`
CAIRO_CFLAGS=`pkg-config --cflags cairo`
CAIRO_LIBS=`pkg-config --libs cairo`
DBUS_CFLAGS=`pkg-config --cflags dbus-1`
DBUS_LIBS=`pkg-config --libs dbus-1`
EXO_CFLAGS=`pkg-config --cflags exo-0.3`
EXO_LIBS=`pkg-config --libs exo`
FONTCONFIG_CFLAGS=`pkg-config --cflags fontconfig`
FONTCONFIG_LIBS=`pkg-config --libs fontconfig`
FONTENC_CFLAGS=`pkg-config --cflags fontenc`
FONTENC_LIBS=`pkg-config --libs fontenc`
FREETYPE_CONFIG=${PREFIX}/bin/free-config
FREETYPE_CFLAGS=`pkg-config --cflags freetype2`
FREETYPE_LIBS=`pkg-config --libs freetype2`
GDK_CFLAGS=`pkg-config --cflags gdk-2.0`
GDK_LIBS=`pkg-config --libs gdk-2.0`
GLIB_CFLAGS=`pkg-config --cflags glib-2.0`
GLIB_LIBS=`pkg-config --libs glib-2.0`
GMODULE_CFLAGS=`pkg-config --cflags gmodule-2.0`
GMODULE_LIBS=`pkg-config --libs gmodule-2.0`
GOBJECT_CFLAGS=`pkg-config --cflags gobject-2.0`
GOBJECT_LIBS=`pkg-config --libs gobject-2.0`
GTK_CFLAGS=`pkg-config --cflags gtk+-2.0`
GTK_LIBS=`pkg-config --libs gtk+-2.0`
GTK2_CFLAGS=`pkg-config --cflags gtk+-2.0`
GTK2_LIBS=`pkg-config --libs gtk+-2.0`
GLADE_CFLAGS=`pkg-config --cflags libglade-2.0`
GLADE_LIBS=`pkg-config --libs libglade-2.0`
PNG_CFLAGS=`pkg-config --cflags libpng`
PNG_LIBS=`pkg-config --libs libpng`
USB_CFLAGS=`pkg-config --cflags libusb`
USB_LIBS=`pkg-config --libs libusb`
XML_CFLAGS=`pkg-config --cflags libxml-2.0`
XML_LIBS=`pkg-config --libs libxml-2.0`
PANGO_CFLAGS=`pkg-config --cflags pango`
PANGO_LIBS=`pkg-config --libs pango`
X11_CFLAGS=`pkg-config --cflags x11`
X11_LIBS=`pkg-config --libs x11`
XAU_CFLAGS=`pkg-config --cflags xau`
XAU_LIBS=`pkg-config --libs xau`
XT_CFLAGS=`pkg-config --cflags xt`
XT_LIBS=`pkg-config --libs xt`
ICE_CFLAGS=`pkg-config --cflags ice`
ICE_LIBS=`pkg-config --libs ice`
ICE_CFLAGS=`pkg-config --cflags ice`
ICE_LIBS=`pkg-config --libs ice`
TSLIB_CFLAGS=`pkg-config --cflags tslib-1.0`
TSLIB_LIBS=`pkg-config --libs tslib-1.0`
X_CFLAGS=`pkg-config --cflags x11`
X_LIBS=`pkg-config --libs x11`
XFT_CFLAGS=`pkg-config --cflags xft`
XFT_LIBS=`pkg-config --libs xft`
INCROOT=$PREFIX/include
USRLIBDIR=$PREFIX/lib
LIBDIR=$PREFIX/lib
#start compile
#scim (1.4.4-7) 智能通用输入法平台
#Smart Common Input Method (SCIM) 是一个输入法(IM)平台。在输入复杂的非拉丁语字符时需要使用输入法。SCIM 提供了一个通用的
#平台,供各种插件模块和独立的 IM 程序使用。另外它自己还带有一些模块和程序。它是高度模块化的,并且提供了一些抽象接口,使得
#各种功能的插件模块能够轻松地相互通讯。当前支持的模块类型有:配置、IM 引擎、前端、过滤器和设置图形界面
#
#SCIM 通过共享库链接和服务器/客户机模型让 IM 引擎和前端通讯。它支持 XIM 协议,并提供了 GTK+ IM 模块和 Qt IM 模块。
#
#包括:scim 的主程序(基于 GTK+)和其他的支援程序;简单的配置模块、X11 前端模块、rawcode
#IM 引擎模块、简体/繁体中文转换过滤模块,和相应的设置图形界面模块;GTK+ 面板和它的设置图形界面模块;以及一个基于 GTK+的设置工具。
#
#SCIM 都是一个被广泛接受的、具有丰富特性的输入法引擎.
#
可用的单独打包的输入法:scim-table-{additional,ja,
po,zh}、scim-pinyin、scim-uim、scim-m17n、scim-chewing、scim-anthy、
scim-canna、scim-prime 和 scim-skk。
#GTK 用户还可以找到 scim-gtk2-immodule 软件包,用于支持 GTK+ IM 模块。
#
#scim
# [*]libscim8c2a library for SCIM platform
# [M]im-switch 输入法切换框架
# [M]scim-gtk2-immodule GTK+2 input method module with SCIM as backend
# scim-modules-socket socket modules for SCIM platform
# [A]scim-tables-zh Chinese input method data tables for SCIM platform
# scim-modules-table generic tables IM engine module for SCIM platform
# [A]scim-pinyin smart pinyin IM engine for SCIM platform
#
#安装平台
#scim_1.4.4.orig.tar.gz
./configure --host=$HOST --build=$BUILD --prefix=$PREFIX --with-gtk-im-module-dir=$PREFIX/lib/gtk-2.0/2.10.0/immodules
#修改config.h: 注释 #define malloc rpl_malloc 加入 #undef rpl_malloc
#utils/Makefile: 修改 LDFLAGS = -L/xroot/lib -lX11
#libtool和各级Makefile: 找到 -lgcc 和 -lstdc++ , 去掉
#scim-pinyin-0.5.0
./configure --host=$HOST --build=$BUILD --prefix=$PREFIX --enable-tools
#scim-tables-0.5.6
./configure --host=$HOST --build=$BUILD --prefix=$PREFIX
#vi tables/zh/Makefile tables/ne/Makefile tables/am/Makefile
tables/bn/Makefile tables/vi/Makefile tables/te/Makefile
tables/th/Makefile tables/ar/Makefile tables/kn/Makefile
tables/pa/Makefile tables/ta/Makefile tables/additional/Makefile
tables/ko/Makefile tables/ml/Makefile tables/hi/Makefile
tables/ja/Makefile tables/gu/Makefile tables/ru/Makefile
#查找 -b -o , 找到的本行注释不执行: 这个动作是产生字体库,可由PC拷贝过来。
#修改 tables/Makefile, 修改 SUBDIRS = zh
make -j 2 all;
#拷贝PC上的 /usr/share/scim/tables/[Array30.bin Cantonese.bin Erbi.bin Quick.bin Wu.bin
# CangJie3.bin CantonHK.bin Erbi-QS.bin Simplex.bin ZhuYin-Big.bin
# CangJie5.bin CNS11643.bin EZ-Big.bin Stroke5.bin ZhuYin.bin
# CangJie.bin Dayi3.bin Jyutping.bin Wubi.bin Ziranma.bin]等文件拷贝到 tables 目录下
cp /usr/share/scim/tables/*.bin tables/zh/
make -j 2 install;
#scim-bridge-agent and scim-bridge-client
#[scim-bridge_0.4.14.orig.tar.gz]
./configure --host=$HOST --build=$BUILD --prefix=$PREFIX
--enable-agent --enable-gtk2-immodule --enable-tests --enable-debug
#配置scim
export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE=SCIM
gtk-query-immodules-2.0 > /xroot/etc/gtk-2.0/gtk.immodules
#scim -f socket -ns socket -c simple -d
scim -f x11 -e pinyin -c socket -d
#fcitx 3.4.3
tar jxf data.tar.bz2
./configure --host=$HOST --build=$BUILD --prefix=$PREFIX --enable-xft
#去掉config.h中的rpl_malloc的定义
#在src tools/Makefile 添加 LDFLAGS = -L/xroot/lib -lXau -lXdmcp -lxml2
#去掉tools/Makefile中的生成 库的操作 cj.mb等 all 依赖的 5行
#启动fcitx
export LC_CTYPE=zh_CN.UTF-8
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export LANG="zh_CN"
fcitx
或者新建文件 /etc/X11/Xsession.d/25xchinput-start
在里面写入
export XIM=fcitx
export XIM_PROGRAM=fcitx
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE=fcitx
export LANG="zh_CN"
fcitx &
这样fcitx就能自动随X启动
export DISPLAY=:0.0 320*240
阅读(1462) | 评论(0) | 转发(0) |