Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641852
  • 博文数量: 227
  • 博客积分: 8017
  • 博客等级: 中将
  • 技术积分: 2069
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-08 22:50
文章分类

全部博文(227)

文章存档

2011年(10)

2010年(55)

2009年(28)

2008年(134)

我的朋友

分类: LINUX

2008-08-10 21:59:55

sqlite-3.6.1 在uclinux上的移植

1、 下载源码
    $ mkdir -p ~/arm/source/sqlite/
    $ cd ~/arm/source/sqlite/
    $ wget -c

2、 编译安装
    1)编译安装前注意设置交叉编译器的路径,我的是在.bashrc中加上:
    export PATH=$PATH:/usr/local/arm/3.4.1/bin

    2) 记得先安装一下readline库,否则在sqlite3的命令行中不能使用shell的
    history等功能. 其实这只对pc机上的linux有用(只需sudo apt-get install
    libreadline5-dev 就行了),但是对于交叉编译的arm-linux 却没有
    readline库,要移植readline库(我的这一步并不成功,不知道是什么原因):
    $ wget -c ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz
    $ tar zxf readline-5.2.tar.gz
    $ cd readline-5.2/
    $ ./configure --host=arm-linux --prefix=$(pwd)/_install
    $ make
    $ make install


    3) 编译安装sqlite
    $ tar zxvf sqlite-3.6.1.tar.gz
    $ cd sqlite-3.6.1/
    $ ./configure --host=arm-linux --prefix=$(pwd)/_install
        --disable-tcl --with-readline-lib=/home/itlanger\
        /arm/source/sqlite/readline-5.2/_install/lib
    $ make
    $ make install
    编译安装成功后,会在_install目录下安装三个目录: bin, include 和 lib

3、安装
    1) strip一下动态库
    $ cd sqlite-3.6.1/_install/lib
    $ arm-linux-strip libsqlite3.so.0.8.6
    这样就将libsqlite3.so.0.8.6从原来的1M多减少到300多k!

    2) 将sqlite-3.6.1/_install/lib/* copy到目标板的/usr/lib目录下
    $ cp -rP _install/lib/* ~/work/ ##这里work是我的nfs目录
    
    3)将sqlite-3.6.1/_install/bin/sqlite3 copy到目标板的/usr/bin目录下

    4)将 readline-5.2/lib/*  copy到目标板子的/usr/lib目录下
   
4、测试
    1) 转到目标板上运行sqlite3, 没问题吧.
    2) 写个小程序测试一下,假设为test.c
    3) 程序的编译:
    $ arm-linux-gcc -o test test.c -L/home/itlanger/arm/source/\
      sqlite/sqlite-3.6.1/_install/lib -I/home/itlanger/arm/source\
      slqite/sqlite-3.6.1/_install/include -Wall
    是不是程序的路径太长了? 可以这样:
    $ sudo cp -rP sqlite-3.6.1/_install/lib/libsqlite3.* /usr/local/\
    arm/3.4.1/arm-linux/lib/
    $ sudo cp sqlite-3.6.1/_install/include/* /usr/local/arm/3.4.1/\
      arm-linux/include/
    这样编译就比较方便了:
    $ arm-linux-gcc -o test test.c -lsqlite3 -Wall 
   
5、备注:
    以上的交叉编译的sqlite3命令行程序还是不能支持up键的history功能。不
    知道是什么原因。 所以标注为红色的最好不要做。   
 
阅读(956) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~