SQLite3动态库、静态库编译

资源准备

1、下载SQLite3源码,下载地址为https://www.sqlite.org/download.html。下载sqlite-amalgamation-3200000.zip和sqlite-dll-win32-x86-3200000.zip,分别解压。

动态库编译

1、使用vs2012创建win32工程,名称为sqlite3,然后选择DLL和空项目

2、把shell.c、sqlite3.c、sqlite3.h、sqlite3ext.h、sqlite3.def拷贝到工程源文件目录,前4个文件位于第一个zip,后一个文件位于后2个zip

3、通过工程的资源管理器把上述4个文件添加到工程中

4、修改工程配置,在配置属性-->c/c++-->预处理器-->预处理器定义,加入两个预处理宏

SQLITE_ENABLE_RTREE

SQLITE_ENABLE_COLUMN_METADATA

5、修改工程配置,在配置属性-->链接器-->输入-->模块定义文件 加入sqlite3.def

6、编译即可。

静态库编译

静态库的编译与动态库的编译过程基本一致,只是在创建项目时候有一点点区别,在创建Win32工程时,选择静态库,接着取消预编译头,后续所有步骤预编译动态库相同。

时间: 2024-12-23 15:42:00

SQLite3动态库、静态库编译的相关文章

Linux 下动态库 / 静态库(依赖)

一. 依赖动态库的动态库 libfun.so依赖动态库libtest.so(libfun.so动态库里的函数intnothing()调用了libtest.so里的intmytest()函数),而main.exe又调用了libfun.so的函数int nothing(). 下面两种方式都能工作: 1> 常用的方式 g++ -shared -fPIC -o libtest.so test.cpp g++ -shared -fPIC -o libfun.so function.cpp  -L./ -I

Linux 动态库 静态库

什么是库 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于windows和Linux的本质不同,因此二者库的二进制是不兼容的.Linux操作系统支持的库函数分为静态库和动态库,动态库又称共享库.Linux系统有几个重要的目录存放相应的库函数,如/lib,/usr/lib;头文件放在/usr/include. 什么是静态库 静态库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都被整合进目标代码中,他的优点就显而易见了,即编译后的执

C++基础知识之动态库静态库

一. 静态库与动态库 库(library),一般是一种可执行的二进制格式,被操作系统载入内存执行. 我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库 静态库和动态库区别: 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.因此,使用了静态库的可执行程序存储在磁盘上的空间就比较大. 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在. 静态库和动态库命名规范: linux: 静态库文件名的命名规范是

动态库静态库差异对比

最近在做一个项目需要http接口,由此将框架中依赖libcurl的http单独拿来用 libcurl提供两种库:静态库跟动态库,首先curl目下只提供了libcurl.a,并没有生成libcurl.so,由此开始编译依赖静态的http.sog++ -shared -fPIC -o lib/libhttp.so http_handle.cpp -I./ -I./curl-7.34.0/include -L./ -lcurl ./lib/libhttp.so: undefined reference

Python、编译解释、动态库静态库、编译过程、头文件了解一下

学习Python这门语言首先要了解 什么是编译与解释,什么是连接,什么是动态库与静态库, 什么是编译: 编译就是先把高级语言设计的程序翻译成二进制的机器语言,然后CPU直接执行机器码就可以了.一把翻译再执行 编译型语言在于速度快. 什么是解释: 解释就是在程序运行时,才把高级程序语言一条一条地翻译成二进制的机器语言.边运行边翻译成二进制机器语言.所以速度没有编译来得快.边执行边翻译 解释型语言的优点在于可以跨平台. Python语言的优点: 可移植性.可扩展性.可嵌入性 简单.优雅.明确 开发效

c/c++:动态库 静态库 linux/windows 例子 (转)

作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). C++静态库与动态库 这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书<程序员的自我修养——链接.装载与库>. 什么是库 库是写好的现有的,成熟的,可以复用的代码.现实中每

g++动态库静态库混合链接

今天编译一个程序时报错: g++ -static -o echo.fcgi echo_adaptor.o echo.o -L/usr/local/lib/ -lfastcgipp -L/usr/lib/ -lboost_thread -pthread -lboost_system -lboost_date_time -L/home/chu/lib/ -lwebframework -L/usr/local/lib/ -lctemplate_nothreads -L/usr/lib64/mysql/

(转)linux centos 编译luabind-0.9.1 动态库 静态库

编译时:virtual memory exhausted: Cannot allocate memory 一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法. 二.解决方法 在执行free -m的是时候提示Cannot allocate memory: (swap文件可以放在自己喜欢的位置如/var/swap) [html] view

C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项

目录 0. 引言 1. 交叉编译 2. Cygwin简介 3. 静态库编译及使用 4. 动态库编译及使用 5. MinGW简介 6. CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件并且支付可观费用才能够被授权使用的一个操作系统.linux是unix的克隆版本,是由其创始人Linus和诸多世界知名的黑客手工打造的一个操作系统.为什么linux和unix之间有很多软件可以很轻松的移植?因为linux也满足POSIX规范,所以在运行机制上跟unix相近.同时,POSI

android开发 NDK 编译和使用静态库、动态库 (转)

在eclipse工程目录下建立一个jni的文件夹 在jni文件夹中建立Android.mk和Application.mk文件 Android.mk文件: Android提供的一种makefile文件,用来指定诸如编译生成so库名.引用的头文件目录.需要编译的.c/.cpp文件和.a静态库文件等.详见附件中的Android.mk. Application.mk文件: 定义了项目的一些细节,比如APP_ABI := x86(编译X86平台库).APP_PLATFORM := android-9(使用