当前位置: 首页 > news >正文

【QT+QGIS跨平台编译】之一:【sqlite+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录

  • 一、sqlite3介绍
  • 二、文件下载
  • 三、文件分析
  • 四、pro文件
  • 五、编译实践

一、sqlite3介绍

SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。

     SQLite特性:

①不需要一个单独的服务器进程或操作的系统( 无服务器 的)。
②SQLite 不需要配置,这意味着 不需要安装或管理 。
③ 一个完整的 SQLite 数据库是存储在一个 单一的跨平台的磁盘文件 。
④SQLite 是非常小的,是 轻量级 的,完全配置时小于 400KiB ,省略可选功能配置时小于 250KiB 。
⑤SQLite 是 自给自足 的,这意味着不需要任何外部的依赖。
⑥SQLite 事务是 完全兼容 ACID 的,允许从多个进程或线程安全访问。
⑦SQLite 支持 SQL92 ( SQL2 )标准的大多数查询语言的功能。
⑧SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API 。
⑨SQLite 可在 UNIX ( Linux, Mac OS-X, Android, iOS )和 Windows ( Win32, WinCE, WinRT )中运行,具备 跨平台 特性。


二、文件下载

sqlite网址:
https://www.sqlite.org/index.html
在这里插入图片描述
在这里插入图片描述
获取sqlite-autoconf-3390400.tar.gz、sqlite-dll-win64-x64-3390400.zip文件。


三、文件分析

解压缩sqlite-autoconf-3390400.tar.gz、sqlite-dll-win64-x64-3390400.zip文件。

在sqlite-autoconf-3390400文件夹,文件信息:
在这里插入图片描述

头文件与源文件:

在这里插入图片描述

解压缩sqlite-dll-win64-x64-3390400.zip

拷贝sqlite3.def


四、pro文件

配置头文件:

#头文件
HEADERS +=  sqlite3.h \sqlite3ext.h

配置源文件:

#源文件
SOURCES +=  sqlite3.c

导出的模块文件:

win32 {DEF_FILE = sqlite3.def
}

设置预定义项:

DEFINES -= UNICODE
DEFINES += SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_PREUPDATE_HOOK
DEFINES += SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_FTS5
DEFINES += SQLITE_ENABLE_RTREE SQLITE_ENABLE_JSON1 SQLITE_ENABLE_SESSION
DEFINES += SQLITE3_EXPORTS SQLITE_HAS_CODEC
DEFINES += CODEC_TYPE=CODEC_TYPE_AES128 SQLITE_COREwin32 {DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}

形成001.sqlite-3.39.4.pro文件:

QT += coreTEMPLATE = lib
CONFIG += c++17DESTDIR = ../QGIS
CONFIG(debug, debug|release){MOC_DIR = ../build-QGIS/sqlite3/Debug/mocRCC_DIR = ../build-QGIS/sqlite3/Debug/rccUI_DIR = ../build-QGIS/sqlite3/Debug/uiOBJECTS_DIR = ../build-QGIS/sqlite3/Debug/obj
}else{MOC_DIR = ../build-QGIS/sqlite3/Release/mocRCC_DIR = ../build-QGIS/sqlite3/Release/rccUI_DIR = ../build-QGIS/sqlite3/Release/uiOBJECTS_DIR = ../build-QGIS/sqlite3/Release/obj
}CONFIG(debug, debug|release){TARGET = sqlite3d
}else{TARGET = sqlite3
}
DEFINES -= UNICODE
DEFINES += SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_PREUPDATE_HOOK
DEFINES += SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_FTS5
DEFINES += SQLITE_ENABLE_RTREE SQLITE_ENABLE_JSON1 SQLITE_ENABLE_SESSION
DEFINES += SQLITE3_EXPORTS SQLITE_HAS_CODEC
DEFINES += CODEC_TYPE=CODEC_TYPE_AES128 SQLITE_COREwin32 {DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0#当前目录
INCLUDEPATH += ./#头文件
HEADERS +=  sqlite3.h \sqlite3ext.h#源文件
SOURCES +=  sqlite3.cwin32 {DEF_FILE = sqlite3.def
}# Default rules for deployment.
#unix {
#    target.path = /usr/lib
#}
#!isEmpty(target.path): INSTALLS += target

五、编译实践

用QtCreator程序,打开001.sqlite-3.39.4.pro文件。

在这里插入图片描述

在windows下编译,形成:
在这里插入图片描述

在linux下编译,形成:

在这里插入图片描述

在macos下编译,形成:

在这里插入图片描述

http://www.lryc.cn/news/285552.html

相关文章:

  • websocket实现聊天室(vue2 + node)
  • RabbitMQ-消息延迟
  • 【Oracle】如何给物化视图分区
  • 10个常考的前端手写题,你全都会吗?
  • vue组件间通信
  • 编程框架概述:MVC, MVP, MVVM, Flux/Redux, 和 Clean Architecture
  • 多维时序 | Matlab实现CNN-BiLSTM-Mutilhead-Attention卷积双向长短期记忆神经网络融合多头注意力机制多变量时间序列预测
  • np.argsort排序问题(关于位次)-含GitHub上在numpy项目下提问的回复-总结可行方案
  • Element中的el-input-number+SpringBoot+mysql
  • Jupyter Notebook五分钟基础速通
  • 基于SpringBoot的SSM整合案例
  • [SS]语义分割_转置卷积
  • 面板小程序命令行工具介绍
  • DBA技术栈MongoDB: 数据增改删除
  • Xcode查看APP文件目录
  • 【视频媒体】深入了解直播视频流
  • 【01】mapbox js api加载arcgis切片服务
  • 图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1
  • 【Docker】安装nacos以及实现负载均衡
  • 如何用数据赋能社媒营销决策?
  • 初识k8s(概述、原理、安装)
  • 【Java】Maven的基本使用
  • 【RT-DETR有效改进】遥感旋转网络 | LSKNet动态的空间感受野网络(轻量又提点)
  • 【进阶之路】如何提升 Java 编程内力?
  • Git一台电脑 配置多个账号
  • 2024年华为OD机试真题-素数之积-Java-OD统一考试(C卷)
  • 汤姆·齐格弗里德《纳什均衡与博弈论》笔记(2)
  • QT上位机开发(动态数据采集与监控)
  • vue2 -- 截图工具html2canvas
  • 笔记-孙子兵法-第三篇-谋攻(1)-不战而屈人之兵,上兵伐谋,韩信之死