摘自:http://www.sqlite.org/howtocompile.html

Amalgamation Versus Individual Source Files与单个源文件合并

SQLite是符合ANSI-C规范的源码。必须编译成机器码方可使用。本文就是指导如何通过不同的方式对SQLite进行编译。

本文不会手把手的教你编译SQLite(step-by-steprecipe按部就班的菜谱)。鉴于开发平台的不同,很难提供一个统一的说明书。相反,本文仅仅是描述和解释SQLite编译的基本原理。

如下提供了一些例子,这些例子中包含的通用的编译命令,帮助应用程序开发人员快速开发自己的自定义编译程序

下文中提供了许多例子,这些例子包含了很多典型的编译选项命令。应用程序开发人员可以根据这些例子提供的指导,自定义编译程序。换言之,授人以鱼不如授人以渔(provides ideas and insights,not turnkey solutions)

Alternative Source Code Formats  替代源代码格式

SQLite由一百多个C文件和脚本分散在不同的目录构成。SQLite由纯ANSI-C来实现,但是大部分的C语言源码文件都是由(auxiliary)C程序或者AWK,SED,和TCL脚本生成或者转换,从而生成SQLite库。其中生成必须的C程序和转换成或者生成C语言源码本身就是一个复杂的过程。

为了省事,SQLite同样同乐一个单源码文件sqlite3.c。该文件可以构建完整的SQLite库。作为一个单源码文件,可以很轻易的包含在其他的应用程序当中。所有的代码生成或者转换都已经被实现,所以无需执行任何的脚本,无需任何的C程序的配置。整个库包含一个单独的转换单元,编译器能够提前优化,性能提升在在5%到10%之间。感慨于此,强烈推荐采用单源码文件编译的方式。

The use of the amalgamation is recommendedfor all applications.

当然也可以通过独立的源码文件来构建SQLite库,但是不推荐。对于某些特殊的应用,从网页上下载的已经预编译的单源文件可能无法满足需要进行修改编译步骤的应用场景。因此,强烈推荐按照下文的步骤,定义一个新的单源码文件。就是说,即使项目需要从独立的源码文件开始构建SQLite库,还是希望能够将独立的源码文件构建成单源码文件,通过中间步骤的方式,来构建SQLite库(it is still recommended that an amalgamation source file be used asan intermediate step.)

编译命令行接口Compiling The Command-Line Interface

sqlite3.c:SQLite单源码文件

sqlite3.h:sqlite3.c的头文件以及定义了SQLite的C语言接口

shell.c:命令行接口程序。拥有main函数,循环等待用户的输入,然后提交用户的输入给SQLite数据库的引擎处理。

本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1950364,如需转载请自行联系原作者

SQLite编译(How To Compile SQLite)相关推荐

  1. 编译ONNX模型Compile ONNX Models

    编译ONNX模型Compile ONNX Models 本文是一篇介绍如何使用Relay部署ONNX模型的说明. 首先,必须安装ONNX包. 一个快速的解决方案是安装protobuf编译器,然后 pi ...

  2. sqlite库 —— 为什么要使用 SQLite 数据库?

    SQLite 是一个被大家低估的数据库,但有些人认为它是一个不适合生产环境使用的玩具数据库.事实上,SQLite 是一个非常可靠的数据库,它可以处理 TB 级的数据,但它没有网络层.接下来,本文将与大 ...

  3. android sqlite 操作类封装,[Android] Sqlite 数据库操做 工具封装类

    sqlite 数据库封装类html DatabaseUtil.java(封装的类)java packagecom.jack.androidbase.tools;importandroid.conten ...

  4. 常用开发工具 之 SQLite 数据库 与 Navicat for SQLite 的下载、安装与简单使用说明

    常用开发工具 之 SQLite 数据库 与 Navicat for SQLite 的下载.安装与简单使用说明 目录 常用开发工具 之 SQLite 数据库 与 Navicat for SQLite 的 ...

  5. 【SQLite预习课3】SQLite 的常用语法

    作者主页:Designer 小郑 作者简介:软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导.CSDN学院 ...

  6. 【玩转SQLite系列】(一)初识SQLite,重拾sql语句

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53230842 本文出自[DylanAndroid的博客] [玩转SQLite系 ...

  7. SQLite编译问题

    从http://www.sqlite.org/主页上获得了SQLite的源文件,还没有时间研究就在编译上发生了不小的问题. 首先是碰到是,编译之后,只产生了sqlite3.dll文件,不产生对应的li ...

  8. sqlite3源码编译到Android,实现SQLite跨全平台使用

    文/何晓杰Dev(高级Android架构师)著作权归作者所有,转载请联系作者获得授权. 初看这个标题你可能会不解,SQLite 本身就是一个跨平台的数据库,在这里再说跨平台有什么意义呢? 其实不然,目 ...

  9. android sqlite自定义函数,如何在SQLite中创建用户定义的函数?

    SQLite不像Oracle或MS SQL Server那样支持用户定义的功能.对于SQLite,必须使用C / C ++创建一个回调函数,并使用sqlite3_create_function调用将该 ...

最新文章

  1. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
  2. 电脑微信多开方法_微信电脑端多开方法
  3. Javascript 5 种原始数据类型
  4. 项目中要使用到动态规划该怎么应用,怎么说?
  5. 51nod1675-序列变换【莫比乌斯反演】
  6. windows系统停止8080端口
  7. TensorFlow 分布式
  8. VS调用tensorflow模型记录
  9. buffer pool mysql_理解Mysql中的Buffer pool
  10. Zynq硬件开发之Xilinx官方技术手册解读(一)
  11. 算法图解 -- 书评
  12. 200+套HTML以及HTML5静态网页网站模板收藏
  13. 现代心理与教育统计学 第一章
  14. jQuery 案例-图片抽奖
  15. 如何用Python制作简单又好看的词云?来瞅瞅吧~
  16. JS监听手机物理返回键(及IOS微信端的bug)
  17. HTTP 有哪些方法?
  18. 兄弟机cnc系统面板图解_加工中心操作面板各按键的意思
  19. 2020R1快开门式压力容器操作考试及R1快开门式压力容器操作考试试题
  20. 中专生女生学高铁还是计算机,女生学习高铁乘务专业好就业吗

热门文章

  1. linux系统启动过程(一)
  2. 2 - 前端基础--CSS 选择器
  3. Confluence 6 重要缓存和监控
  4. 关于tableview的优化
  5. Apache中的一个测试小工具
  6. 被困69天后,智利矿工重返人间
  7. 交换机工作原理(下)
  8. bzoj2091: [Poi2010]The Minima Game DP
  9. (转)flask的context机制
  10. 27、Label 自适应文本 xib