美文网首页程序员
sqlite3研究专辑——研究用VS工程的创建

sqlite3研究专辑——研究用VS工程的创建

作者: 懒生活 | 来源:发表于2019-08-15 22:07 被阅读0次

    sqlite3的官网介绍地址: https://www.sqlite.org/index.html

    sqlite3在VS项目上的2种使用方式

    sqlite3在VS项目上的使用有2种方式,一种是把sqlite3的源代码直接放入工程,和自己开发的代码一起编译使用。另一种是把sqlite3先编译成库文件,通过静态库或者动态库调用的方式在项目工程中使用。

    方式1:源代码直接加入当前工程编译

    该使用方式操作最简单,最有利于sqlite3数据库熟悉和研究的方式。 只需要把sqlite3.c和sqlite3.h分别加入工程, 然后在需要调用的cpp文件上导入sqlite3.h文件后,就可以使用其中的sqlite数据库了。

    #include <stdio.h>
    #include "sqlite3.h"
    int main()
    {
        const char* tt = sqlite3_libversion();
        return 0;
    }
    

    sqlite3在官网上提供了源码下载,推荐的源码是all_in_one的方式,这种方式在官网上称作Amalgamation source code。 所有的源代码都集中在一个c文件sqlite3.c 文件中。
    https://www.sqlite.org/download.html

    方式2:源代码先编译成库,然后把库加入当前工程使用

    sqlite3在VS2019上的dll编译与使用
    在VS的工程项目中要使用sqlite3作为数据库,需要使用源代码编译出一个动态链接库dll文件,然后在需要的工程中导入并使用该dll库。
    这里需要简单先介绍下,源文件,dll库,lib库,h文件和工程之间的关系。https://blog.csdn.net/Aidam_Bo/article/details/82014241
    一文对上述的关系描述的比较清楚了,形象的说,h头文件和lib是dll的索引,程序编译的时候需要。编译时,并不是把dll的实际功能编译进程序,而只是根据索引,在程序需要的地方打上调用入口标记。这种编译方式使得程序本事很小,需要调用某个功能的时候,根据编译时的调用入口标记,可以调用程序外部的动态库dll实现。 这种方式成为动态库编译方式。 还有一种叫静态库编译方式,此时编译系统需要静态库的头文件和lib文件。静态库的lib文件中已经包含了函数实现,已经不是简单的索引了,当程序编译的时候,系统会把lib中的函数实现编译到程序中,这样程序的体积会相对大一些。
    sqlite3提供的代码是库代码,可以编译成动态库也可以编译成静态库。新建的VS工程为了使用sqlite3,就需要先把sqlie3的源码编译成动态库或者静态库,然后在工程中加入编译。
    具体过程如下

    1 下载源码

    https://www.sqlite.org/download.html
    页面中下载sqlite-amalgamation-3290000.zip
    解压后,会得到sqlite3.c sqlite3.h

    2 创建库工程(工程名这里定义为sqlite3)

    把sqlite3.c sqlite3.h加入工程,编译后,debug目录下会生成sqlite3.dll
    此时并没有生成.lib文件
    https://blog.csdn.net/wyq429703159/article/details/85164490

    在所建工程上单击鼠标右键,在弹出的右键菜单中选择“添加-->新建项....---->模块定义文件”,在该模块定义文件中写导出函数表,单击确定。然后在所建工程上单击鼠标右键,选择“属性”菜单,在弹出的属性对话框中“链接器-->输入-->模块定义文件”中填写刚才定义的def文件,然后再重新编译即可生成LIB文件。

    相关文章

      网友评论

        本文标题:sqlite3研究专辑——研究用VS工程的创建

        本文链接:https://www.haomeiwen.com/subject/ylnpjctx.html