SQLite3.3.6在ARM2410上的移植

SQLite3.3.6在ARM2410上的移植

要将SQLite3.3.6移植到ARM2410开发板上,除了要有底层操作系统的支持外,还必须要有相应的交叉编译工具链。由于ARM2410开发板采用的是ARM-Linux作为底层操作系统,因此需要首先安装ARM-Linux工具链。
1.交叉编译环境建立:
拷贝cross-2.95.3.tar.bz2到/usr/local目录下并解压缩。
cp cross-2.95.3.tar.bz2 /usr/local/arm
tar –jxvf cross-2.95.3.tar.bz2

2.编译SQLite-3.3.6
(1)在/root下建立目录sqlite,拷贝sqlite-3.3.6.tar.gz到该目录同时解压缩。
tar –zxvf sqlite-3.3.6.tar.gz
(2)新建目录:
cd /sqlite-3.3.6
mkdir build
(3)修改配置文件
vi configure
修改以下几个部分:
# if
test "$cross_compiling" = "yes"; then
# { { echo "$as_me:$LINENO: error: unable to find a compiler for building build tools" >&5
#echo "$as_me: error: unable to find a compiler for building build tools" >&2;}
# { (exit 1); exit 1; }; }
# fi

#else
# test "$cross_compiling" = yes &&
# { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
#echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
# { (exit 1); exit 1; }; }

#else
# test "$cross_compiling" = yes &&
# { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
#echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
# { (exit 1); exit 1; }; }

进入目录build:
cd build
../ configure --disable-tcl --host=arm-linux
这样在build目录中就将生成Makefile和一个libtool脚本
(4)修改Makefile文件:
cd build
vi Makefile
将下面的这行
BCC = arm-linux-gcc -g -O2
改成:
BCC = gcc -g -O2
将下面的这行:
sqlite3$(TEXE): $(TOP)/src/shell.c .libs/libsqlite3.la sqlite3.h
改成:
sqlite3$(TEXE): $(TOP)/src/shell.c .libs/libsqlite3.a sqlite3.h
我们都是将sqlite放到arm-linux的硬件板子上运行,所以我们一般将其编译成静态链接的形式。
保存Makefile文件后退出。
(5)编译:
执行make命令即可完成编译。
编译完成后,在build目录下生成许多.o和.lo文件。但最重要的时文件sqlite3。
file sqlite3
sqlite3: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
由此可知,此时生成的sqlite文件是还未strip过的。执行命令arm-linux-strip, 去掉其中的调试信息,这样文件将减少很多。
arm-linux-strip sqlite3

再次用file命令查看sqlite3的信息:
file sqlite3
sqlite3: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped
这就是在开发板上可以直接运行的可执行文件。
通过nfs将这些文件下载到开发板上。
需要注意:
拷贝是需要加上 –arf选项,因为libsqlite3.so,libsqlite3.so.0是链接到libsqlite3.so.0.8.6的。
cp –arf libsqlite3.so libsqlite3.so.0. libsqlite3.so.0.8.6 /usr/lib
cp sqlite3 /mnt/nfs
(6)测试结果:
chmod 777 sqlite3
编辑测试程序:test.c
编译:arm-linux-gcc test.c -L.libs -lsqlite3 –static
arm-linux-strip a.out
将其下载到开发板上:
执行:a.out ex "select * from tbl"[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7271077/viewspace-905716/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7271077/viewspace-905716/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLite-jdbc是一个用于在Java中访问SQLite数据库的驱动程序。它是一个纯Java实现的驱动程序,意味着它可以在任何支持Java的平台上运行。由于SQLite本身是一个轻量级的嵌入式数据库,它不需要像其他数据库那样运行一个独立的服务器进程。 SQLite-jdbc ARM版是专门为ARM架构的设备(如树莓派)而设计的版本。在ARM架构下,硬件资源受限,因此需要优化的驱动程序来提高性能和资源利用率。ARM版的SQLite-jdbc针对这些ARM设备进行了优化,以获得更好的性能和更低的资源消耗。 在使用SQLite-jdbc ARM版时,我们需要下载适用于ARM架构的驱动程序,并在项目中引入它。然后,我们可以像使用任何其他版本的SQLite-jdbc一样,通过Java代码来连接、查询和操作SQLite数据库。 例如,我们可以使用以下代码片段连接到SQLite数据库并执行查询: ```java import java.sql.*; public class Main { public static void main(String[] args) { Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { // 加载SQLite JDBC驱动 Class.forName("org.sqlite.JDBC"); // 创建连接 connection = DriverManager.getConnection("jdbc:sqlite:/path/to/database.db"); // 创建语句对象 statement = connection.createStatement(); // 执行查询 resultSet = statement.executeQuery("SELECT * FROM table"); // 处理结果集 while (resultSet.next()) { // 处理每一行的数据 } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭连接、语句和结果集 try { resultSet.close(); } catch (Exception e) {} try { statement.close(); } catch (Exception e) {} try { connection.close(); } catch (Exception e) {} } } } ``` 通过这样的方式,我们可以在ARM架构的设备上使用SQLite-jdbc ARM版来操作SQLite数据库。这使得我们可以在资源受限的环境中进行数据存储和查询操作,而无需额外的服务器和复杂的配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值