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. 顶部图片放大回弹效果Scrollview ---- 各应用中常见的自定义View 解析

    原理并不难.  代码量也不大.  非常简洁 .  先来个效果图 再上一波代码. public class SpecialScrollView extends ScrollView implements ...

  2. JavaScript--模拟验证码

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 基于Jquery easyui 选中特定的tab并更新

    获取选中的 Tab // 获取选中的 tab panel 和它的 tab 对象 var pp = $('#tt').tabs('getSelected'); var tab = pp.panel('o ...

  4. c/c++内存机制(一)(转)

    转自:http://www.cnblogs.com/ComputerG/archive/2012/02/01/2334898.html 一:C语言中的内存机制 在C语言中,内存主要分为如下5个存储区: ...

  5. JS响应事件整理

    javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...

  6. HTML5和CSS3:游戏的变革Flexbox

    HTML5和CSS3给网络开发者提供了新的语法标签,本地动画工具,服务器端字体等等新增功能,这些并不是结束.开发者正苦于为网页设计挖出一条战壕 - 真正的页面排版工具,事实上,即便是最有前途的CSS3 ...

  7. createElement()结合appendChild()的实例

    createElement()作用是在JavaScript中创建一个元素 appendChild()向html元素添加节点 下面是冲浪后改编的例子代码 先插html代码 <body> &l ...

  8. Linux(Debian)上安装Redis教程

    -- 第一步下载文件到该目录 cd /usr/local/src wget http:.tar.gz 解压 tar xzf redis.tar.gz -- 第二步编译安装 make make all ...

  9. 你真的了解console吗?

    对于前端开发者来说,在开发过程中需要监控某些表达式或变量的值的时候,用 debugger 会显得过于笨重,取而代之则是会将值输出到控制台上方便调试.最常用的语句就是console.log(expres ...

  10. python+flask+mongodb+whoosh实现自己的搜索引擎(一):目录

    python+flask+jieba+mongodb+whoosh实现自己的搜索引擎 一.目录 二.基于python的爬虫 三.网页去燥,URL去重 四.基于mongodb的数据存储 五.基于whoo ...