最近在学习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内容如下
附项目目录
运行结果如下
附上我整理的word文档下载网址:https://pan.baidu.com/s/1MxtoDSTuwZQCkLKam0y5_w,密码:3or5.
结束
每日一句
Life is real,life is earnest
人生真实,人生诚挚.