SQLite指南-Ubuntu篇

SQLite是一个轻量级数据库系统,SQLite基于纯C实现,具有良好的跨平台特性。SQLite使用简单,能够应付小型的软件开发应用。在开发中使用SQLite,你需要从SQLite官方网站下载源码和库文件,当然,也可以自己编译库文件。

一、下载SQLite源码

这里获得SQLite源码,解压到任意目录。

二、编译静态库文件

首先生成目标文件

gcc -c sqlite3.cc -o sqlite3.o 

从目标文件生成静态库

ar cvr libsqlite3.a sqlite3.o 

使用静态库文件生成目标 假设在SQLiteDBTest.cpp文件中使用了sqlite的相应接口,静态编译的方法如下:

gcc SQLiteDBTest.cpp libsqlite3.a -lpthread -ldl -lstdc++ -o SQLiteDBTest

其中,-lpthread -ldl参数指定了sqlite使用的线程库和dl库(参见http://www.sqlite.org/howto compile.html),lstdc++指定使用标准C++库。

三、编译动态库文件

生成动态库文件

gcc -shared -fPCI -o libsqlite3.so sqlite3.o -ldl -lpthread 

注意链接参数-ldl和-lpthread 使用动态库文件生成目标

gcc SQLiteDBTest.cpp -lsqlite3 -L. -lstdc++ -o SQLiteDBTest 

其中-L.参数指定gcc优先从当前目录搜索库文件,如果不加该行,则优先从系统目录搜索库文件。 一般开发过程中,如系统中自带sqlite库,一般不需要自行编译相应库文件。如若要使用自行编译的库文件,最好安装时将其拷贝到系统库目录中。不然的话,对于自行编译的动态库,需要指出其位置,程序才能正常运行,使用如下命令添加查找库文件位置。

export LD_LIBRARY_PATH=$(pwd)

REF:

1.How To Compile SQLite

2.gcc详解以及静态,动态库的生成 1

3.gcc详解以及静态,动态库的生成 2

发表回复