zoukankan      html  css  js  c++  java
  • sqlite3开发环境搭建

      SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,其占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

      本文记录了在Ubuntu上安装sqlite3开发环境和交叉编译环境的过程。

    1、下载sqlite3源码

      官网地址:http://www.sqlite.org/download.html

      

    此版本提供了配置脚本、Makefile等。

    2、首先安装到Ubuntu下的x86环境

    1 cd sqlite-autoconf-3230100/ #进入源码主目录
    2 sudo ./configure #使用默认配置,这里可以指定安装目录和编译器
    3 sudo make 
    4 sudo make install

    观察安装过程中的输出信息可知,相关文件的安装路径如下:

    可执行文件;/usr/local/bin
    库文件:/usr/local/lib
    头文件:/usr/local/include

    命令行下输入:sqlite3,如下图,说明安装成功。

    编译测试文件命令:gcc -o name name.c -lsqlite3

    至此,就可以在Ubuntu下编写sqlite应用了。

    3、安装嵌入式开发环境

      1)、编译ARM版本

    1 cd /usr/local/opt
    2 #创建安装目录,为方便管理与交叉工具链放在同一个目录下,在pc上编译代码用到此目录内容
    3 mkdri sqlite3 
    4 
    5 cd sqlite-autoconf-3230100/
    6 #--host指定了编译器  --prefix指定了安装目录
    7 sudo ./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/opt/sqlite3

      去除调试信息:

      arm-none-linux-gnueabi-strip sqlite3

      压缩动态库

      arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6

       2)、复制可执行文件和库文件到开发板

    1 cp /usr/local/opt/sqlite3/bin/sqlite3 /usr/local/bin
    2 cp /usr/local/opt/sqlite3/lib/libsqlite3.so.0.8.6 /usr/local/lib
    3 cd usr/local/lib
    4 ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
    5 ln -s libsqlite3.so.0.8.6 libsqlite3.so

    确保/usr/local/bin包含于$PATH中,命令行输入sqlite3,如下:

    说明安装成功。

    编译测试文件命令:arm-none-linux-gnueabi-gcc -o name name.c -I /usr/local/opt/sqlite3/include -L /usr/local/opt/sqlite3/lib -lsqlite3

    -I指定了头文件路径,-L指定了库文件路径, -lsqlite3制定的库为sqlite3。

    问题:

      可执行文件在开发板运行时提示:: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory

    原因:存放libsqlite3.so.0的路径没有包含到环境变量中。

    解决:export LD_LIBRARY_PATH="/usr/local/lib"

  • 相关阅读:
    GNU make manual 翻译(九十九)
    GNU make manual 翻译( 九十五)
    Shell的 for 循环小例子
    makefile中对目录遍历的小例子
    GNU make manual 翻译(九十三)
    GNU make manual 翻译( 一百)
    GNU make manual 翻译( 九十七)
    GNU make manual 翻译( 九十八)
    mapserver4.8.3 的readme.win32的中文翻译文件
    遥控器编程
  • 原文地址:https://www.cnblogs.com/mofei004/p/8984403.html
Copyright © 2011-2022 走看看