网上很多大牛其实都写了,这里只是为了记录自己的学习情况,顺便学习一下编译生成静态链接库,进入正题

开发环境:Windows 10+VS2013。

开发语言:C/C++。

首先,要在C程序中使用SQLite,则需要编译使用静态库.lib文件,然而官网只提供了sqlite3.dll和sqlite3.def文件,需要.lib才能使用。所以自己生成.lib文件。

下载sqlite-dll-win32-x86-3081002.zip和sqlite-amalgamation-201505200015.zip,前者包含sqlite3.dll和sqlite3.def文件,后者包含所需的头文件

下载地址http://www.sqlite.org/download.html

将上述压缩包解压到文件夹,如F:/SQLite

接着打开CMD命令行。执行以下命令

cd f:\sqlite\sqlite-dll-win32-x86-3081002

f:\sqlite\sqlite-dll-win32-x86-3081002> lib /DEF:sqlite3.def

或者直接在对应文件夹处打开命令行,如在文件夹sqlite-dll-win32-x86-3081002里面按shift + 鼠标右键,选择在此处打开命令窗口,然后输入lib /DEF:sqlite3.def,即可。

运行成功会有如下打印。

Microsoft (R) Library Manager Version 6.00.8168

Copyright (C) Microsoft Corp 1992-1998. All rights reserve

LIB : warning LNK4068: /MACHINE not specified; defaulting
   Creating library sqlite3.lib and object sqlite3.exp

注意:如果不成功。如果提示lib不是内部或者外部命令,则在vs2013的安装目录下拷贝 vc/bin/lib.exe 和link.exe到sqlite3目录下。如果提示缺少mspdb60.dll或者其他文件,则相应的找到拷贝到sqlite3目录下即可。

此时已经编译好了你要的静态链接库,即sqlite3.lib

接下来就是在相应的代码里引用了

创建win32控制台工程SQLiteTest。
sqlite3.h(在sqlite-amalgamation-3071300.zip压缩包中)添加到工程。
sqlite3.lib复制到工程文件夹下。
工程属性中添加sqlite3.lib库依赖。

项目---属性---链接器----输入-----在附加依赖项中添加sqlite3.lib

ps: 要将sqlite3.dll 和 exe放到同一个目录下,同时要保持sqlite3.dll的版本和exe的版本保持一致。如果exe是32位程序,那么dll就使用sqlite3.32位的,exe是64位,那么sqlite3.dll就使用64位的。


#include "stdafx.h"
#include "sqlite3.h"
#include <iostream>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{//打开路径采用utf-8编码  //如果路径中包含中文,需要进行编码转换  int rc = 0;int i = 0;sqlite3 *db = NULL;char *sql = NULL;char *err = NULL;rc = sqlite3_open("sqlite3test.db", &db);if (rc){printf("\r\nopen database sqlite3test.db fail!\r\nERR: %s", sqlite3_errmsg(db));sqlite3_close(db);return -1;}printf("\r\nopen database sqlite3test.db ok!");sql = "create table stu(id int PRIMARY KEY,name text);";rc = sqlite3_exec(db, sql, NULL, NULL, &err);if (SQLITE_OK != rc){if (NULL != err){printf("\r\nSQL1 ERR:%s", err);sqlite3_free(err);return -1;}}sql = "insert into stu values (1, 'zhangsan');";rc = sqlite3_exec(db, sql, NULL, NULL, &err);if (SQLITE_OK != rc){if (NULL != err){printf("\r\nSQL2 ERR:%s", err);sqlite3_free(err);return -1;}printf("\r\n error insert");}sql = "insert into stu values (2, 'lisi');";rc = sqlite3_exec(db, sql, NULL, NULL, &err);if (SQLITE_OK != rc){if (NULL != err){printf("\r\nSQL2 ERR:%s", err);sqlite3_free(err);return -1;}printf("\r\n error insert");}sql = "select * from stu;";char **result;int nrow = 0, ncolumn = 0;rc = sqlite3_get_table(db, sql, &result, &nrow, &ncolumn, &err);if (SQLITE_OK != rc){if (NULL != err){printf("\r\nSQL3 ERR:%s", err);sqlite3_free(err);return -1;}printf("\r\n error select");}printf("\r\nrow: %d ,column: %d", nrow, ncolumn);for (i = 0; i<(nrow + 1)*ncolumn; i++){printf("\r\n %s\t %s", result[i++], result[i]);}sqlite3_free_table(result);sqlite3_close(db);return 0;

原文:https://blog.csdn.net/u014038534/article/details/45921273 
版权声明:本文为博主原创文章,转载请附上博文链接!

Windows中SQLite的编译及编程相关推荐

  1. Windows中cl命令编译运行C++

    Windows中cl命令编译运行C++ 在dos命令窗口,利用cl命令编译运行C++: 设置步骤: 1.正确安装Visual Studio 2019 我的安装路径是: "C:\Program ...

  2. Windows中编译wireshark3.0以上版本指南

    Windows中编译wireshark3.0以上版本指南 一.摘要 在网上已有的wireshark编译的网页文档中,只有编译wireshark1.0和wireshark2.0相关版本的内容,对于已经发 ...

  3. 【C#】C#中使用GDAL3(一):Windows下超详细编译C#版GDAL3.3.0(VS2015+.NET 4+32位/64位)

    转载请注明原文地址:https://www.cnblogs.com/litou/p/15004877.html 总目录 (一)Windows下超详细编译C#版GDAL3.3.0(VS2015+.NET ...

  4. cygwin中写c语言程序,在windows下怎么利用Cygwin进行编程

    Windows下使用C语言+嵌入SQL实现DB2开发 Cygwin,gcc的介绍和安装在前面的文章有将过,请参考 在Windows中使用Cygwin环境下的gcc编译器编译Informix ESQ/C ...

  5. Windows上也能用Swift编程了,官方编译工具安装包现已上线

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最近,Swift发行了5.3版本,这意味着它可以直接在Windows 10上使用了. 由于Swift是苹果开发的一门编程语言,能在Ubunt ...

  6. windows下写代码在linux下编译,如何在Windows中编译Linux Unix的代码(采用cygwin)?...

    很多经典算法往往是用C++在linux下实现的,对长期从事windows开发的辛苦大众来说,想看这些算法的运行效果不得不费一点小功夫.今天捣鼓了一晚上才搞定这事,写出实现方法和大家共享. 第一步:下载 ...

  7. 在 Windows 中编程 Raspberry Pi Pico 的初学者指南

    在 Windows 中编程 Raspberry Pi Pico 的初学者指南 在本教程中,我们将了解如何在 Windows 系统中安装和设置用于编程 Raspberry Pi Pico 的 Visua ...

  8. windows中Python串口编程(一)

    在windows中,使用python进行串口编程需要安装一个Serial模块 pyserial: 下载地址:https://pypi.python.org/pypi/pyserial 下载完成后得到一 ...

  9. 20220910最新版Redis7源码编译及windows中安装

    20220910最新版Redis7源码编译及windows中安装 文章目录 20220910最新版Redis7源码编译及windows中安装 1.Cygwin安装 1 Cygwin介绍 ...is i ...

最新文章

  1. java concurrency_GitHub - CL0610/Java-concurrency: Java并发知识点总结
  2. IIS与ASP.NET管道
  3. php post请求跳转,学习猿地-php如何实现post跳转
  4. angular4设置全局变量_angularjs 设置全局变量的7种方法
  5. 数字通信系统中的均衡技术
  6. 知识点滴:持久层,DAO,API,DAL,BLL,DLL,csproj,sln
  7. 数位DP入门之hdu 3652 B-number
  8. C语言中的类模拟(C++编程思想)
  9. CTF之Web训练后篇2
  10. fastdfs原理简析
  11. 深度卷积神经网络是什么,卷积神经网络结构设计
  12. 方便的支付宝第三方平台,三分钟教你搭建
  13. jt808终端鉴权_北斗终端设备通信协议(JT/T808)
  14. ROS智能车定位导航仿真(已实现)
  15. mouseover,mouseout,mouseenter,mouseleave,hover
  16. 2013华为工作之电信客服行
  17. SVG实例入门与动画实战
  18. 提前揭秘CJ八大看点
  19. 计算机资源管理器出问题怎么办,W7系统资源管理器已停止工作怎么办
  20. erp系统服务器性能指标,ERP系统体检的三大关键指标

热门文章

  1. UVA - 10615 Rooks
  2. 【XSY2719】prime 莫比乌斯反演
  3. JSP自定义标签开发与打包
  4. QLibrary执行load失败
  5. 进行直播间搭建时需要注意的小细节
  6. Flutter 底部导航——BottomNavigationBar | 掘金技术征文
  7. 无线AP如何区分来宾(流动)用户和正常用户?
  8. Corejava -异常
  9. Response.Redirect、 Server.Transfer、Server.Execute三者区别
  10. iOS 代理设计模式