源码获取

地址:http://www.sqlite.org/download.html

组织形式

?
可以看到source code是Amalgamation
真正的源码在这里
?

什么是Amalgamation

下载源码以后,打开时候这样子的
?
src文件夹里就是所有的代码,大概有一百多个。
那么为啥还要有一个Amalgamation呢?
SQLite标准的makefile产出的就是一个amalgamation,其实就是一个sqlite3.c单文件,大概有6.4M,184K行代码。
使用时,只需要把sqlite.c放在工程目录下编译就好了。其中sqlite.c的前几千行就是sqlite.h的内容。
使用amalgamation有两个好处
1. 使用方便。只需要把sqlite.c放在目录下
2. 使得运行更快。因为大部分编译器对于单文件,可以做一些优化。经过测试,大概可以提高5到10个百分点。

当然也有坏处:
由于编译器使用了内联函数(function inlining),使得二进制大一些。

时间: 2024-11-05 13:49:12

源码获取的相关文章

【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间

打算学习一下Linux,这两天先看了一下gcc的简单用法以及makefile的写法,今天是周末,天气闷热超市,早晨突然发现住处的冰箱可以用了,于是先出去吃了点东西,然后去超市买了一坨冰棍,老冰棍居多,5毛钱一根,还有几根1.5的. 嗯 接着说gcc的事 先把源代码贴上来 //gettime.h #ifndef _GET_TIME_H_ #define _GET_TIME_H_ void PrintCurrentTime(); #endif //gettime.c #include <stdio.

Tools:Installing and using the Required Tools for downloading and Building EDK II工具篇:安装/使用EDKII源码获取/

Tools:Installing and using the Required Tools for downloading and Building EDK II工具篇:安装/使用EDKII源码获取/编译工具[2.3] 2015-07   北京海淀区  张俊浩 2. Setting Up EDKII Development Environment(EDKII开发环境的搭建) ->2.1 The General Procedure Of Setting Up EDKII Development E

谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)

转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用win7+vs2010,相对来说也比较简单,按照步骤来也很快能编译出来. 1.官网的编译配置介绍:http://www.chromium.org/developers/how-tos/build-instructions-windows 2.编译需要的工具:vs2010/sp1,win8sdk,DXS

Android 5.1 AOSP 源码获取

Android 5.1源码开放有一个多月啦,但由于城墙的关系,每次想着更新最新源码学习都万般纠结,现在发现国内有开源镜像啦,这就好多啦,感谢清华开源工作团队的无私工作啊. 地址:https://aosp.tuna.tsinghua.edu.cn/ 根据页面上的介绍,该镜像只支持源码sync,不支持sdk更新. AOSP 镜像服务单 IP 并发数限制为 4.因版权原因,我们无法提供 Android SDK 镜像. 可以看一下他给出的使用帮助:https://wiki.tuna.tsinghua.e

u-boot、kernel源码获取

在嵌入式开发中,linux操作系统已经是主流了,但是在开发初期需要移植u-boot和linux内核等. 下面是linxu和u-boot源码的获取方式: 一.u-boot源码: 1.通过ftp服务器 ftp://ftp.denx.de/pub/u-boot/ 2.需要安装git,windows和linux操作系统都可以. git clone git://www.denx.de/git/u-boot.git 二.linux内核源码: git clone git://git.kernel.org/pu

浅析libuv源码-获取精确时间

在Timer模块中有提到,libuv控制着延迟事件的触发,那么必须想办法精确控制时间. 如果是JS,获取当前时间可以直接通过Date.now()得到一个时间戳,然后将两段时间戳相减得到时间差.一般情况下当然没有问题,但是这个方法并不保险,因为本地计算机时间可以修改. libuv显然不会用这么愚蠢的办法来计算时间,C++内部有更为精妙的方法来处理这个事. 首先在上一节中,一个简单的事件轮询代码如下: int main() { uv_loop_t *loop = uv_default_loop();

kettle系列-1.kettle源码获取与运行

第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了广泛的使用.我本身对kettle的各个控件使用也不是很熟悉,只会使用最常见的部分控件,就是这样简单的使用也被它的美深深的吸引住了. 好了,进入正题,这里假设你熟悉java开发.git一般使用.kettle一般使用.kettle源码之前托管在kettle官方的svn上,后来迁移到了github上,在g

(转发)Android 源码获取-----在Windows环境下通过Git得到Android源代码

在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过 https://github.com/ 下载安装好即可. 2.接着我们在Git命令行里输入如下命令: git clone http://android.googlesource.com/platform/frameworks/base android // 这个android是我们自己认取的名字,表

android app性能测试工具GT源码获取以及部署

GT是TMQ(腾讯移动品质中心)研发的一款app性能测试工具.官方地址:http://gt.qq.com/index.htmlgithub地址:https://github.com/Tencent/GT运行工具:eclipse ,我用的专门集成android环境的版本如下图eclipse下载地址:链接: https://pan.baidu.com/s/1csbzl0 密码: 3633 第一步 去github clone代码在cmd命令行中进入到事先创建好的项目存放文件夹下执行 git clone