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. iOSUI基础——懒加载

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 ...

  2. Objective-C学习篇05—Foundation框架简介

    iOS中所谓的框架,说到底就是一个目录,iOS提供了很多我们可以在应用程序中调用的框架.许多应用程序都使用了如Foundation.UIKit和Core Graphics这些框架.根据你为应用程序选择 ...

  3. 开始Swift之旅 - HelloWorld

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  4. js apply

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

  5. 设置Imindmap默认字体

    创建一个新的字体样式 根据如下步骤创建新的字体样式: 1.打开一个mindmap,选中工具栏上的 [样式][Styles ]. 2.选择 Font > Create New Font Optio ...

  6. POJ 1155 树形背包(DP) TELE

    题目链接:  POJ 1155 TELE 分析:  用dp[i][j]表示在结点i下最j个用户公司的收益, 做为背包处理.        dp[cnt][i+j] = max( dp[cnt][i+j ...

  7. Java中的继承与组合

    本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别.首先文章会给出一小段代码示例,用于展示到底什么是继承.然后演示如何通过“组合”来改进这种继承的设计机制.最后总结这两者的应用场景,即到 ...

  8. svn更新

    下载配置文件 pwd cd /home/www/xxxx/protected/config/ get main.php 上传配置文件 put main.php svn更新 svn co svn://s ...

  9. css position 相对定位

    <html> <head> <style type="text/css"> h2.pos_left { position:relative; l ...

  10. C++学习笔记5——类的继承

    简介: 通过继承联系在以前的类构成一种层次关系.通常在层次关系的根部有一个基类,其他类则直接或间接地从基类继承,这些继承得到的类称为类的派生类. 作用: 1.子类拥有父类的所有成员函数和成员变量. 2 ...