Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9151591
  • 博文数量: 1727
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19860
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1727)

文章存档

2024年(3)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: LINUX

2009-02-06 15:24:28

#!/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
阅读(1377) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~