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. C#多线程lock解决数据同步

    1.代码实例: public class ThreadTest4 { public static void Init() { //多个线程修改同一个值,使用lock锁解决并发 ; i < ; i ...

  2. 使用ol,添加图书销售排行榜

    如果想在网页中展示有前后顺序的信息列表,怎么办呢?如,当当网上的书籍热卖排行榜,如下图所示. 这类信息展示就可以使用<ol>标签来制作有序列表来展示. 语法: <ol> < ...

  3. js apply

    1.作用 函数的apply方法的作用与call方法类似,也是改变this指向,然后再调用该函数.唯一的区别就是,它接收一个数组作为函数执行时的参数 Fn.apply(obj, [arg1, arg2, ...

  4. 无法嵌入互操作类型“Microsoft.Office.Interop.Word.ApplicationClass”。请改用适用的接口。

    引用里找到Microsoft.Office.Interop.Word右键属性 在嵌入互操作类型里,选上False就行了.

  5. yii2源码学习笔记

    assets   前端资源文件夹,用于管理css js等前端资源文件等 commands   包含命令行命令,文件为控制器文件 config 应用的配置文件 controllers 控制器文件 mai ...

  6. Js点餐加减数量

    <button class="add-on" onclick="chgNum(1,'del')" ><i class="icon-m ...

  7. php开发中的url地址传输加密解密函数

    function keyED($txt,$encrypt_key) //定义一个keyED { $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ''; ...

  8. jquery学习(2)toggle

    $(function(){ $("#panel h5.head").hover(function(){ //交替执行该函数 $(this).next().show(); },fun ...

  9. SVN客户端忽略无关文件-备

    修改前请先备份文件 ~/.subversion/config. 1,打开Terminal,输入命令: $ open ~/.subversion/config   2,在打开的文件中寻找:`global ...

  10. Fireworks Extension —— AutoSlice 介绍

    前不久在网上到处瞎晃的时候,发现Adobe的软件几乎都可以写插件.Fireworks更是很早的版本就支持使用javascript编写插件,于是乎如入桃园,奋斗几日为VD小伙伴们写了一个插件,命名Aut ...