一.编译arm下的sqlite3
2.解压源码包tar -zxv -f sqlite-autoconf-xxxxxxx.tar.gz,得到目录sqlite-autoconf-xxxxxxx
3.新建目录/usr/local/arm/sqlite-arm-linux作为arm sqlite的安装目录。
4.进入解压出来的目录sqlite-autoconf-xxxxxxx配置configure:./configure --host=arm-linux --prefix=/usr/local/arm/sqlite-arm-linux
5.编译安装:make&make install
6.安装完之后/usr/local/arm/sqlite-arm-linux目录下会出现一些文件,这些就是编译出来的arm下sqlite3的文件
其中bin目录下的sqlite3就是arm下的可执行文件,include里面有sqlite3.h,交叉编译程序时要用到的。lib里面有一些共享库和静态库,交叉编译目标程序时也要用到,要拷贝到arm板子里。
7.清除一些调试信息,使库体积减小
arm-linux-strip libsqlite3.so.0.8.6
8.把lib里面的libsqlite3.so.0,libsqlite3.so.0.8.6拷贝到arm板的/usr/lib目录下。注意,libsqlite3.so.0是一个软连接文件,有很多U盘是放不了这类文件的,所以如果用U盘拷贝的话,可以只拷贝libsqlite3.so.0.8.6,然后再创建libsqlite3.so.0。
命令:
ln -s /usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0
9.然后把bin目录里面的sqlite3拷贝到arm板的/usr/bin目录下,然后就可以在arm板使用sqlite3了
二.使用sqlite3 API,编译arm下的程序
要交叉编译arm下使用sqlite3 API的程序,还要把include下的sqlite3.h拷贝到arm-linux-gcc安装目录下的include目录,我这里的安装目录是/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi
cp sqlite3.h /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include/
再把库文件也拷贝过去
cp libsqlite3.s* /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/lib/
01 #include
02 #include
03
04 static int callback(void *NotUsed, int argc, char **argv, char **azColName){
05 int i;
06 for(i=0; isqlite3_open(argv[1], &db);
23 if( rc ){
24 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
25 sqlite3_close(db);
26 return(1);
27 }
28 rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
29 if( rc!=SQLITE_OK ){
30 fprintf(stderr, "SQL error: %s\n", zErrMsg);
31 sqlite3_free(zErrMsg);
32 }
33 sqlite3_close(db);
34 return 0;
35 }
保存为sqlitetest.c
交叉编译一下:arm-linux-gcc -o sql3test sqlitetest.c -lsqlite3
编译选项-lsqlite3要放到最后
得到了arm下的可执行文件sql3test,拷贝到arm板里运行即可
阅读(4914) | 评论(0) | 转发(0) |