0.前言
    本博文可能并没有太多使用价值。不过为了练习而练习。在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多。
    【1】假设使用Python,那么不必安装SQLite由于Python已经自带SQLite。

    【2】能够使用apt-get安装。仅仅是SQLite的版本稍低些。
    【3】能够使用源码安装,在树莓派上直接编译,尽管树莓派的运算速度不如PC机。可是稍等几分钟也能编译安装完毕。
    【4】假设你想练习一下交叉编译,请阅读下面内容吧。


    【本文目的】
    【1】怎样交叉编译源码包
    【2】交叉编译得到的文件位于何处
    【3】交叉编译得到的文件应该拷贝到树莓派的哪些位置
    【4】多学点Linux知识。


    【參考资料】

1.交叉编译过程
【1】获得源码
    下载sqlite源码包并在随意用户文件夹解压。【SQlite下载链接
    2014年7月最新的SQlite3的源码包名称为sqlite-autoconf-3080500.tar.gz。
 
【2】创建新文件夹
    在用户目录中新建目录 opt/sqlite-rpi。该目录用于存放交叉编译之后得到的文件
 mkdir -p opt/sqlite-rpi

【3】编写一个安装脚本
    在sqlite源码文件夹中,添加一个安装脚本——user-install-rpi.sh
#!/bin/bash
./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux --prefix=$HOME/opt/sqlite-rpi && \
make clean && \
make && \
make install
    【说明】
    【a】CC=arm-linux-gnueabihf-gcc 指定交叉工具链。该工具链已经写入用户环境变量。
    【b】--host=arm-linux 指定主机
    【c】--prefix=$HOME/opt/sqlite-rpi 指定安装文件路径,和步骤【1】相相应
    【d】&& 代表运行完毕之后再运行下一条指令。 \ 代表续行。

【4】小心翼翼地运行
    改动文件的运行权限。并运行脚本
chmod user-install-rpi.sh
./user-install-rpi.sh

【6】结果
    在opt/sqlite-rpi文件夹中,出现4个子文件夹,当中
    【bin】中有sqlite可运行文件,
    【include】中为sqlite的接口API,包含sqlite3.h和sqlite3ext.h
    【lib】文件夹中有动态共享库 libsqlite3.so.0.8.6 和 静态共享库libsqlite3.a

2.拷贝到树莓派中
    这些文件在树莓派中详细位置是能够变化的。本例仅仅是指出了最经常使用的位置(linux查找时的默认位置)。可是诸如动态共享库和头文件等文件能够位于树莓派的随意文件夹中。仅仅要你在编译和运行的过程中能够正确找到就可以。

 【1】使用ftp软件上传sqlite3(可运行文件)、libsqlite3.so.0.8.6(动态链接库)、sqlite3.h和sqlite3ext.h到树莓派中。

 【2】sqlite可运行文件,拷贝到/bin文件夹中
        sudo cp sqlite3 /bin/
 【3】libsqlite3.so.0.8.6,拷贝到/lib文件夹中
        sudo cp libsqlite3.so.0.8.6 /lib/
 【4】sqlite3.h和sqlite3ext.h 拷贝到/usr/include/文件夹中,若使用这C语言API,那么这两个头文件时必须的(当然也能够放在其它文件夹中。仅仅要在makefile的时候查找成功就可以)。
        sudo cp sqlite3.h sqlite3ext.h /usr/include/
 【5】若控制台中运行sqlite3错误发生,请查看是否出现反复libsqlite3.so.0.8.6 。

反复的动态共享库可能是安装Python时加入。

  sudo find -name / libsqlite3.so
      【运行结果】
#1
/usr/lib/arm-linux-gnueabihf/libsqlite3.so.0.8.6
#2
/lib/libsqlite3.so.0.8.6
      【把#2覆盖#1】
        请依据实际查找结果改动cp命令參数。

sudo cp /lib/libsqlite3.so.0.8.6 /usr/lib/arm-linux-gnueabihf/

 【5】执行sqlite3 ,执行成功
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

3.总结
    【1】交叉编译依旧离不开make三大步,configure、make和make install。

    【2】交叉编译之后得到的文件拷贝到linux的默认查找文件夹中,比如/usr/lib/ /usr/include/等。
    【3】遇到问题请耐心查找。
    

树莓派学习笔记——交叉编译练习之SQLite3安装的更多相关文章

  1. 树莓派学习笔记——apt方式安装opencv

    0.前言     本文介绍怎样在树莓派中通过apt方式安装opencv.并通过一个简单的样例说明怎样使用opencv. 相比于源码方式安装opencv,通过apt方式安装过程步骤简单些,消耗的时间也少 ...

  2. 树莓派学习笔记——使用文件IO操作GPIO SysFs方式

    0 前言     本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...

  3. 树莓派学习笔记—— 源码方式安装opencv

    0.前言     本文介绍怎样在树莓派中通过编译源码的方式安装opencv,并通过一个简单的样例说明怎样使用opencv.     很多其它内容请參考--[树莓派学习笔记--索引博文] 1.下载若干依 ...

  4. 【转】树莓派学习笔记——I2C Tools 学习笔记

    原文网址:http://blog.csdn.net/xukai871105/article/details/15029843 1.安装     I2C驱动载入和速率修改请查看博文[树莓派学习笔记——I ...

  5. 树莓派学习笔记——USB wifi配置指南

    0 前言     树莓派既能够使用有线网络又能够无线网络,假设使用有线网络不方便的话能够借助USB wifi无线网卡让树莓派也插上无线"翅膀". 可是和使用有线网络即插即用的方式不 ...

  6. go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE

    go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...

  7. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 一.家庭服务器实现的主要功能 1.流媒体播放服务:利用DLNA实现电视.手机.电脑播放其上面 ...

  8. 【转】 树莓派学习笔记——I2C设备载入和速率设置

    原文网址:http://blog.csdn.net/xukai871105/article/details/18234075 1.载入设备 方法1——临时载入设备 sudo modprobe -r i ...

  9. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

随机推荐

  1. Android之使用json进行网络数据交换

    JSON作为一种轻量级的数据交换格式,凭借其易于阅读和编写.易于解析.传输速度快等优点流行了起来.最近正好在学习Android端从服务端端取数据,Json便派上了用场.好,下面开始切入主题. 1.准备 ...

  2. sql注释

    一般使用数据库客户端软件是navicat,上面写sql用的注释符号一般是“#”或者“/* */”,比如: #我是注释 /*我是注释*/ 记得之前看别人sql里用“--”作为注释符号,结果我今天也试了一 ...

  3. 关于auto和decltype

    auto会忽略顶层const,保留底层const ; const int* const p = &i; auto p2 = p; //p2是const int*,不是const int* co ...

  4. hive 桶相关特性分析

    1. hive 桶相关概念     桶(bucket)是指将表或分区中指定列的值为key进行hash,hash到指定的桶中,这样可以支持高效采样工作.     抽样( sampling )可以在全体数 ...

  5. 利用js加载本地图片预览功能

    直接上代码: 经测试,除safari6包括6以下不支持,其他均可正常显示. 原因:safari6不支持filereader,同时不能使用IE滤镜导致失效. fix: 可以利用canvas,解决safa ...

  6. Extjs中grid表格中去掉红三角

    在编辑Extjs的gridpanel的时候,数据有错误或是修改在每个单元格上都会出现红色的小三角,在每个列上面可以配置allowBlank: false来标识这个不可以为空 有的时候在保存数据时如果不 ...

  7. 【转】关于TP3.2 验证码不显示的问题

    在调用验证码之前加上 ob_clean(); 不显示验证码的代码: public function verify(){                $verify = new \Think\Veri ...

  8. PHP获取当前文件路径信息的方法

    文件名  test.php 1.__FILE__ 获取 “路径 + 文件名” : /var/www/test/test.php  echo __FILE__; //取得当前文件的路径:用魔术常量 __ ...

  9. 手写 title 提示

    jquery实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  10. python运维开发之第七天

    一.面向对象编程进阶 1.静态方法 @staticmethod 名义上归类管理,实际上跟类没什么关系 在静态方法里,访问不了类或实例中的任何属性 class Static_method(object) ...