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

文章目录

一、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文件

配置头文件:

cpp 复制代码
#头文件
HEADERS +=  sqlite3.h \
            sqlite3ext.h

配置源文件:

cpp 复制代码
#源文件
SOURCES +=  sqlite3.c

导出的模块文件:

cpp 复制代码
win32 {
    DEF_FILE = sqlite3.def
}

设置预定义项:

cpp 复制代码
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_CORE

win32 {
    DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}

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

cpp 复制代码
QT += core

TEMPLATE = lib
CONFIG += c++17

DESTDIR = ../QGIS
CONFIG(debug, debug|release){
    MOC_DIR = ../build-QGIS/sqlite3/Debug/moc
    RCC_DIR = ../build-QGIS/sqlite3/Debug/rcc
    UI_DIR = ../build-QGIS/sqlite3/Debug/ui
    OBJECTS_DIR = ../build-QGIS/sqlite3/Debug/obj
}else{
    MOC_DIR = ../build-QGIS/sqlite3/Release/moc
    RCC_DIR = ../build-QGIS/sqlite3/Release/rcc
    UI_DIR = ../build-QGIS/sqlite3/Release/ui
    OBJECTS_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_CORE

win32 {
    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.c

win32 {
    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下编译,形成:

相关推荐
JSON_L2 天前
使用 SQLite 创建数据库和表
数据库·sqlite·php
江湖有缘2 天前
基于华为openEuler部署Sqliteviz轻量级SQLite可视化工具
jvm·华为·sqlite
mahailiang2 天前
codeblocks+wxWidgets Projects中引用第三方库(sqlite3)
数据库·sqlite·wxwidgets·codeblocks
创客小邓2 天前
Qt对SQLite数据库的操作
数据库·qt·sqlite
dreams_dream5 天前
前后端分离项目多环境配置完整笔记
数据库·笔记·sqlite
风清扬_jd5 天前
sqlite支持sqlcipher-4.12.0版本加密编译说明
数据库·c++·sqlite·sqlcipher·sqlite加密
喵手5 天前
Python爬虫实战:快递物流轨迹采集实战:从公开查询到时间线可视化(附CSV导出 + SQLite持久化存储)!
爬虫·python·sqlite·爬虫实战·零基础python爬虫教学·csv导出·快递物流轨迹采集
移幻漂流5 天前
03 - SQLite 技术全景:嵌入式关系数据库引擎完整解析
android·数据库·sqlite
喵手5 天前
Python爬虫实战:论坛社区数据采集实战:从主题列表到分页回帖爬取(附CSV导出 + SQLite持久化存储)!
爬虫·python·sqlite·爬虫实战·零基础python爬虫教学·论坛社区数据采集·csv采集数据导出
喵手6 天前
Python爬虫实战:使用高德地图开放平台API获取餐饮POI数据(店名、坐标、评分)数据采集与地理可视化(附CSV导出 + SQLite持久化存储)!
爬虫·python·sqlite·爬虫实战·零基础python爬虫教学·高德地图开放api·获取餐饮poi数据