sqlite嵌入式数据库在linux下的编译
http://tech.it168.com/oldarticle/2006-08-14/200608141838351.shtml 责任编辑:魏国亮作者:余涛 2006-08-14 1、 下载sqlite:请到http://www.sqlite.org/download.html,将下载的代码包解开,将生成sqlite目录,另外新建一个build目录,如sqlite-arm-linux,应该是和sqlite目录平行的同级目录。 2、 请先确定你的PATH中已经包含交叉编译工具arm-linux-gcc。可用“echo $PATH”命令查看。如我的是“/opt/toolchain/gcc 3.2/toolchain/bin/” 3、 为了在arm-linux下能正常运行sqlite,我们需要修改一处代码,否则在arm板上运行sqlite时会出现下面的东东: 4、 准备使用configure进行一些配置。请在sqlite目录下的configure中找到如下4处,并将他们注释掉,这样可以让configure不去检查你的交叉编译环境。在此提示一下:请你自己确定自己的“arm-linux-”系列命令在你的PATH环境变量中。如:你可以输入“arm-linux-”再按“TAB”键,看其是否自动完成命令行。 #if test "$cross_compiling" = "yes"; then # { { echo "$as_me:12710: 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:13264: 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:13464: 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:13490: 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; }; } 5、 修改Makefile文件 一般地,我们都是将sqlite放到arm-linux的硬件板子上运行,所以我们一般将其编译成静态链接的形式。如果是共享so库的话,比较麻烦。 所以继续修改Makefile,找到如下地方: 第二步 在arm板上运行sqlite 将sqlite拷贝到你的arm板上,方法很多,你需要根据自己的情况来选择。如ftp,cmdftp,wget等。我的方法是使用wget将sqlite下载到arm板的/tmp目录,此目录是可写的。命令如下: 友情提示: 如果sqlite在处理数据库过程中出现“The database disk image is malformed”,如:你在delete from sometable时,可能遇到这个问题。那么就是你的arm板上的空间不够(如在/tmp下),请删除掉一些文件。我遇到的情况是空间还剩1-2M都会出现这个提示。删除后空余4M,就正常了(如delete from sometable)。我是开的8M的ramdisk做开发玩的:-) 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zenwanxin/archive/2011/03/24/6274060.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |