sqlite3 配置交叉编译环境

本文详细介绍了如何在Ubuntu虚拟机上配置ARM交叉编译环境,包括安装arm-linux-gcc,以及如何交叉编译和配置SQLite3。通过解压、配置、编译和安装,最终成功在开发板上运行测试程序。
摘要由CSDN通过智能技术生成

sqlite3 配置交叉编译环境

大体上分为三个步骤:1.在虚拟机上配置交叉编译环境arm-linux-gcc;2、安装和配置在交叉编译环境下的sqlite3;3.通过nfs挂载测试程序。三个步骤都必须成功才行,才能配置成功。

 

1.在虚拟机上配置交叉编译环境

以Ubuntu13.0为例,我们找到光盘里面arm-linux-gcc的安装包,并把这个包导入Ubuntu虚拟机。导入的方法有很多,可以通过vm tools直接拖动,也可以用ssh导入,也可以通过vm自带的共享目录导入。这里介绍vm的共享目录。

点击vm->settings->options->Shared Folders

如图选择add,然后在文件

这样就可以了,共享文件夹就设置好了,打开终端,会在/mnt/hgfs目录下面看到共享文件夹。

 

设置完之后,我们把arm-linux-gcc的编译环境arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 拷到linux目录中去。

tar jxvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 解压出来,进入解压后的目录,里面会有:arm-linux  include  bin  lib等等目录,把这些所有的东西拷贝到/usr/local/arm/2.95.3目录 下。

然后,修改环境变量,目的是能让终端找到arm-linux-gcc的安装目录,输入命令

vim /etc/profile ,在文件的最后一行加上:

exportPATH=$PATH:/usr/local/arm/2.95.3/bin

然后,使新的环境变量生效source /etc/profile

查看环境变量是否设置成功:echo $PATH如果有/usr/local/arm/2.95.3/bin,说明设置成功了。

到此,arm-linux-gcc交叉编译环境就搭建成功了。

 

 

2.安装和配置sqlite3

 

sqlite3官网提供了两种源代码的方式,一种叫作amalgamation,另外一种叫作autoconf,这两种源码包有点不一样。amalgamation的源码包是把sqlite的所有源文件都集成到了sqlite3.c这一个文件里面去,而且这个包只适合单独编译出一个shell版本的sqlite3,它并不会编译出linux里面常见的开发库(也就是基于sqlite3编写的软件必须要依赖的sqlite3库)。而autoconf版就很明显了,是使用linux上面常见的./configure make make install方式来编译sqlite3的,可以编译出所有需要的依赖库。虽然sqlite官方建议使用amalgamation包,但经过个人测试,使用autoconf的包对于sqlite开发者来说是必须的,对于ARM的交叉编译来说就更是如此了。

 

我们这里安装autoconf版本。解压该文件,进入目录,

 sudo ./configure
           sudo make
           sudo make install

执行完这三条,sqlite3就已经被默认安装到了/usr/local/bin里面去了,但是还没完呢,如果在终端直接执行一下sqlite3,多半会报错,类似于这样:

            SQLite headerand source version mismatch
           2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e
           2012-10-04 19:37:12 091570e46d04e84b67228e0bdbcd6e1fb60c6bdb

 

这个问题是因为ubuntu里面原来自带了一个老版的sqlite运行库,这个库由一个库文件和一个符号链接组成,位于/usr/lib/i386-linux-gnu目录,分别是libsqlite3.so.0.8.6和一个符号链接到它的libsqlite3.so.0,由于上面进行的autoconf包的sqlite3并不是静态编译,所以就会出现库不匹配的情况而程序拒绝执行的问题了。
        由于不知道系统自带的那个老版的sqlite库还会不会有用,我们就留着它:
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值