VS编译SQLite

来源:互联网 发布:vocaloid软件 编辑:程序博客网 时间:2024/06/08 09:28

    SQLite是一个小型数据库,特别适合于客户端应用程序使用,它的众多好处就不多说了,有兴趣的去搜索。

    话说使用吧。

    我们要使用,就需要调用它,现在一步一步来。

    第一步:上SQLite官网http://www.sqlite.org/下载它的源码,它的源码有两种格式,一种是许多文件都放在一起的,我称之为集成代码包,另一个是很多.c和.h文件,是分开的,我称之为松散代码包。松散代码包对编译的要求比较高,我也没那时间再去研究它的源代码,于是又变懒了,使用集成代码包吧,如下图:

    下载图上标注的代码

    第二步:准备编译,下载下来之后是个ZIP,解开,里面有shell.c、sqlite3.c、sqlite3.h和sqlite3ext.h这么几个文件,其中shell.c我们不需要,其他的都是要用的

    第三步:开始编译,以VS2010为例,打开VS2010,创建一个Win32的DLL空工程,然后把sqlite3.c、sqlite3.h和sqlite3ext.h这三个文件添加到工程中去,要编译出一个DLL,现在它已经能编译出来了,问题是编译出来之后没有导出函数,是不能用的,所以需要一个DEF文件(符号定义文件),这个文件按理来说我们可以自己添加,不过你如果不阅读源代码是添加不了了,我们简单一点,使用官方提供的,这个要另外下载,当然,还是刚才的下载位置,找到SQLite官方为我们提供好的DLL的下载链接,进行下载,如下图:

    下载下来之后解开这个ZIP,里面有个DEF文件,复制到工程目录中去,然后再在VS2010中添加上,下图:

   

    现在有导出函数了,但是编译不能通过,我们需要定义两个宏,他们是:

    SQLITE_ENABLE_COLUMN_METADATA

    SQLITE_ENABLE_RTREE

    把这两个宏添加到工程中去,如下图:

 

     现在编译,就可以通过了

     问题一:你编译Debug版本和Release版本的时候这两个宏要分别进行添加,否则是不行的。

     问题二:编译Release版本的时候记得设置成静态编译,否则在没有VC库的机器上不能正常调用这个DLL。

     第四步:优化处理和调用

     现在,你已经有一个SQLite的DLL了,为了个性化,或者其他要求,你可以添加一个Version资源,然后写上一些个性化的信息,到此为止,你的SQLite的DLL已经编译出来了。我在VS2010下,编译出来的只有601KB,比官方提供的630KB小不少(DLL是越小越好啊),甚至你还可以给它来个数字签名彰显版权(官方不会限制你这么做)。

第五步:成果展示:

    数据库之前,要进行转换,读出来之后要再次进行转换,否则是乱码(貌似和解析XML一样啊)。

0 0
原创粉丝点击