SQLite编译问题

从http://www.sqlite.org/主页上获得了SQLite的源文件,还没有时间研究就在编译上发生了不小的问题。

首先是碰到是,编译之后,只产生了sqlite3.dll文件,不产生对应的lib库文件。

查看了下sqlite3.h代码,发现了SQLITE_API的宏没有定义导出用的__declspec(dllexport),只是做了一个空定义,就很自然的为在后面加上了。重新编译了以后发现,还是没有任何导出函数,也没有生成任何的lib库文件,这让我一时间不知道如何是好。

在网上查了下,原来还要下载一个sqlite3.def模块定义文件,并且包含到对应的工程中去。

发现可以导出,但是遇到了第二个问题,sqlite3.def居然发现了一些无法一些无法识别的符号,就是所谓的Link2001错误。

这着实让我头疼了很久。毕竟我不可能认为是源代码写的有问题吧。

查了很多文档和资料才知道,需要在预处理器当中该定义三个宏:

SQLITE_ENABLE_COLUMN_METADATA

SQLITE_ENABLE_RTREE

THREADSAFE

还没找到这三个用来定义的作用是什么,但显然是函数编译的开关,可能还与sqlite3的版本管理有关系。这些复杂的问题只能暂且搁置了。

SQLite编译问题,布布扣,bubuko.com

时间: 2024-10-24 19:52:30

SQLite编译问题的相关文章

SQLite 编译错误 - 试图加载格式不正确的程序

刚开始用SQLite,刚开始写了一个小程序,连接数据库的时候出现了问题,提示试图加载格式不正确的程序, 原因是我当前工程的目标平台是X86,改成Any CPU之后问题就解决了.如下图:

SQLite第二课 源码下载编译

1 源码下载以及文件说明 源码下载地址:http://www.sqlite.org/download.html 下载的代码:sqlite-preprocessed-3081101.zip 下载页面的内容说明: /*** 最简单基本的源码,所有的代码实现都在sqlite3.c文件中实现,简称单源文件, 对于我们研究SQLite源码没有多大的帮助,层次并不分明,适合于编译成库提供 动态链接.SQLite有代码15万行,研究单文件源码无从下手 ***/ Source Code sqlite-amalg

SQLite在多线程环境下的应用

这几天研究了一下SQLite这个嵌入式数据库在多线程环境下的应用,感觉里面的学问还挺多,于是就在此分享一下. AD: 2014WOT全球软件技术峰会北京站 课程视频发布 先说下初衷吧,实际上我经常看到有人抱怨SQLite不支持多线程.而在iOS开发时,为了不阻塞主线程,数据库访问必须移到子线程中.为了解决这个矛盾,很有必要对此一探究竟. 关于这个问题,最权威的解答当然是SQLite官网上的“Is SQLite threadsafe?”这个问答. 简单来说,从3.3.1版本开始,它就是线程安全的了

SQLite多线程使用总结

SQLite支持3种线程模式: 单线程:这种模式下,没有进行互斥,多线程使用不安全.禁用所有的mutex锁,并发使用时会出错.当SQLite编译时加了SQLITE_THREADSAFE=0参数,或者在初始化SQLite前调用sqlite3_config(SQLITE_CONFIG_SINGLETHREAD)时启用. 多线程:这种模式下,只要一个数据库连接不被多个线程同时使用就是安全的.源码中是启用bCoreMutex,禁用bFullMutex.实际上就是禁用数据库连接和prepared stat

windows 与linux 下用C++读取sqlite实现文件复制(一)

1.sqlite在windows下的编译.配置 SQLite是一个完全独立的.不需要服务器.不要任何配置.支持SQL的.开源的文件数据库引擎.源代码和支持可以登录:http://www.sqlite.org/ 本文主要介绍如何在C++中使用sqlite. 1.SQLite下载与安装 本文以3.7.4版本为例进行说明.在http://www.sqlite.org/ 下载windows平台的3.7.4版本的sqlite.     (1)下载sqlite3.dll和sqlite3.def文件,其下载地

Android数据库(sqlite)加密方案

最近因为一些项目的安全性需要将数据库加密,一开始想到的就是先将数据库通过AES加密,然后运行时再解密,另一种是将数据库里的内容加密. 很快这两种方案都是不理想的,第一种加密方式形同虚设,第二种,如果加密的字段是要查找数据就变得麻烦. 所以第三种方案就是在内存里解密,在网上查到SQLITE是支持加密的, 所以就根据网上的指导一步步地将SQLITE编译成支持加密的. 那下一步就是怎样做成SDK去方便使用?第一个念头就是将原生的数据库使用方式移植过来,但做起来比开始想像的难了点,但最终也在修修补补中完

【转】Android SQLite加密

原文地址:http://blog.csdn.net/feifei454498130/article/details/8843402 最近因为一些项目的安全性需要将数据库加密,一开始想到的就是先将数据库通过AES加密,然后运行时再解密,另一种是将数据库里的内容加密. 很快这两种方案都是不理想的,第一种加密方式形同虚设,第二种,如果加密的字段是要查找数据就变得麻烦. 所以第三种方案就是在内存里解密,在网上查到SQLITE是支持加密的, 所以就根据网上的指导一步步地将SQLITE编译成支持加密的. 那

SQLite这么娇小可爱,不多了解点都不行啊

在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了解她的. 简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统.它的设计目标是嵌入式的,目前Android和iOS的设备内置的都是SQLite数据库. SQLite虽然娇小,但也支持事务和多数的SQL92标准. 主要特点 1. Zero-Configuration 无需安装和管理配置. 2. Serverless 无需服务器支持. 3. Single Database

【sqlite】1 start

描述: 是数据库引擎,基于c,所以需要提前编译才能运行 基本文件:sqlite3.c sqlite3.h shell.c 编译命令 http://www.sqlite.org/howtocompile.html#amal 下面列举主要目录 动态分配 sqlite采用动态内存分配,运用于sqlite reliable,predictable,robust,secure,efficient 动态分配特性:http://www.sqlite.org/malloc.html robust against