sqlite3源代码编译及调用

最近在学习sqlite,将我学习的过程与大家分享

我在网上找了一些资料和学习方法,这里做出汇总与修改.下面是我找的一篇比较好的编译文章的链接

点击打开链接

他这篇文章在'1、  编译成Win32下的应用程序(*.exe),用于命令行模式下的调试。'这个环节是没有问题的.接着往下看到

"2、编译生成Win32平台下的动态链接库(*.dll)。"(你可以先按照他的方法来,如果编译报错了,在看我下面的方法,毕竟我的方法也仅仅是改了下配置而已).他这里有一点小问题.当你生成.dll时还是没有问题的,但是当你想要生成.lib(.dll的导出文件)时就有问题了.我这里分享一下自己查阅,改错后的操作方法

环境VS2005

目标:编译生成win32平台下的动态链接库

首先创建win32控制台程序,选择dll,空项目

将sqlite-amalgamation-3071100.zip解压后的sqlite3.c、sqlite3.h、sqlite3ext.h,将sqlite-dll-win32-x86-3071100.zip解压后的sqlite3.def模块定义文件一起添加到工程中,在项目属性->c/c++->预处理器->预处理器定义中添加两句话SQLITE_ENABLE_COLUMN_METADATA和SQLITE_ENABLE_RTREE此时的预处理器定义是这样的


在属性->连接器->输入中添加模块定义文件sqlite3,如图下(网上还有一种方法,是在sqlite3.cpp中修改define语句,这种方法不好,因为你不知道他的压缩包版本,可能你会找不到那行代码)(附上方法:

# define SQLITE_API修改成

# define SQLITE_API __declspec(dllexport)

)(这种方法改变的源程序,可能会出现其他问题,因为本人没有试过,如有问题,还请自己查找解决方法)


将编码格式改成多字节编码(字符集)


此时就可以生成.lib和.dll文件了(可以去debug中查看是否生成).

下面简单调用一下生成的数据库动态库(证明下生成的动态库是有效的)(如果对动态库有疑问,可以查看该链接点击打开链接,我的博客中有静态库与动态库的基本所有知识,想了解的可以查看)

创建win32控制台程序,控制台应用程序,空项目

在头文件中添加上面用到的sqlite3.h,在源文件中创建test.cpp .将生成的动态库中的.lib和.dll拷贝到与test.cpp相同目录下.

test.cpp内容如下

附项目目录

运行结果如下


结束


每日一句

Life is real,life is earnest

人生真实,人生诚挚.




猜你喜欢

转载自blog.csdn.net/qq_37059136/article/details/80224826
今日推荐