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

开发环境: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. 内外受阻,金融壹账通还能走多远?
  2. VS2019 windows桌面应用_多邻国英语测试推出桌面应用程序,确保考试环境安全可靠...
  3. 硬盘和显卡的访问与控制(三)(含多彩的Hello)——《x86汇编语言:从实模式到保护模式》读书笔记03
  4. 【深度学习】聊聊Batch Normalization在网络结构中的位置
  5. 《机器学习实战》第九章
  6. php yii2 获取表里最大的id_Yii2中自带分页类实现分页
  7. 多线程矩阵乘法运算 c++
  8. 【图像增强】基于matlab GUI暗通道+Retinex图像去雾(带面板)【含Matlab源码 732期】
  9. JSP-08-第三方控件的使用
  10. java编程手册_Java编程手册
  11. 差分探头和隔离探头有什么区别
  12. Pycharm处理 E501 line too long 警告
  13. 谈个人价值观与企业价值观(2014年收官之作,值得深思)
  14. Semantic Parsing on Freebase from Question-Answer Pairs【论文笔记】
  15. POJ 3264.Balanced Lineup-RMQ(ST)详解
  16. Python AIML搭建聊天机器人(附遇到的问题及解决)
  17. SpringBoot整合Thymeleaf模板引擎以及静态资源的访问
  18. 猫眼电影API接口(从猫眼电影网爬取)
  19. 无锡平面设计培训——零基础怎么学习平面设计
  20. 原生js信息提示框(非dialog)

热门文章

  1. GitLab使用自定义端口
  2. JAVA基础5——与String相关的系列(1)
  3. 锤子Smartisan T1手机官方4.4.2系统内核版本号信息
  4. Uva 1103 Ancient Messages
  5. java的WebService实践(cxf)
  6. Sharepoint 2010 页面设计确实方便
  7. 『前端规范化』CSS命名规范化
  8. Flink如何取代JStorm,成为字节跳动流处理唯一标准?
  9. 带你一起撸一遍 nodejs 常用核心模块(二)
  10. 工作中Oracle常用的SQL