在虚拟机中搭建SQLITE环境,并测试其是否安装成

简介:

1.下载压缩包后解压sqlite-3.6.3tar.gz到/home目录下

复制代码
tar -zxvf sqlite-3.6.3tar.gz -C /home

cd /home/

mkdir sqlite-ix86-linux/

cd /home/sqlite-ix86-linux/

/sqlite-3.6.3/configure --prefix=/home/sqlite-ix86-linux/
复制代码

其中--prefix=/home/sqlite-ix86-linux/的意思是将configure是用来进行用户个性配置的工具, 一般- -开头的说明的是需要配置的选项,--prefix就是说软件额安装目录设置在哪里,后面的=/usr就是你给出的安装目录,当然你完全可以换一个目录。

2.编译并安装,然后生成帮助文档

Make && make install && make doc

3.此时库文件已经生成在/home/sqlite-ix86-linux/lib目录下

可执行文件sqlite3已经生成在/home/sqlite-ix86-linux/bin目录下

4.测试编译安装是否成功

在命令行直接输入:/home/sqlite-ix86-linux/bin/sqlite3 test.db

当我们运行完这一句的时候,test.db会存在于当前的目录下。查看当前目录的命令pwd。

clip_image002_thumb

出现了SQLITE的版本号即其他信息,并且数据库test.db创建成功,表明编译安装已经成功

5.在程序中操作数据库

注:我的程序是在KDevelop中开发的。如果出现编译不通过的问题,请查看下文可能出现的问题。

复制代码
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>

#include <sqlite3.h>
int main()
{
    sqlite3 *db=NULL;
    char *zErrMsg=0,*sql=NULL;
    int rc;
        //char *sql;
    rc=sqlite3_open("test.db",&db);
    if(rc)
    {
    fprintf(stderr,"can't open database:%s\n",sqlite3_errmsg(db));
    sqlite3_close(db);
    return 0;
    }
    else printf("you have opend a selite3 database3 named test.db successfully!\ncongraturations! have fun!\n");
    sqlite3_exec(db,sql,0,0,&zErrMsg);

    //创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
    sql = "CREATE TABLE SensorData(\
    ID INTEGER PRIMARY KEY,\
    SensorID INTEGER,\
    SiteNum INTEGER, \
    Time VARCHAR(12), \
    SensorParameter REAL \
    );";
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
    printf("ErrorMsg:%s",zErrMsg);
    //插入数据 
    sql = "INSERT INTO \"SensorData\" VALUES( NULL , 1 , 1 , '201205011206', 18.9 );" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
    
    sql = "INSERT INTO \"SensorData\" VALUES( NULL , 1 , 1 , '201205011306', 16.4 );" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
    sqlite3_close(db);
    return 0;
}
复制代码

运行完以下代码后,我们就可以在

你的工程目录/程序目录/debug/src/中看到test.db这个文件了。

image_thumb[5]

下面让我们输入一些命令看看表中的数据

image_thumb[4]

 

可能出现的错误:

1、用KDevelop编译的时候总是会出现错误,如下所示

提示如下错误: main.o(.text+0x9b):main.cpp: undefined reference to `sqlite3_open' 
main.o(.text+0xcb):main.cpp: undefined reference to `sqlite3_exec' 
main.o(.text+0xda):main.cpp: undefined reference to `sqlite3_close' 
main.o(.text+0x10d):main.cpp: undefined reference to `sqlite3_close' 
main.o(.text+0x14b):main.cpp: undefined reference to `sqlite3_errmsg' 
main.o(.text+0x173):main.cpp: undefined reference to `sqlite3_close' 明显示找不到lib库文件,

解决方法:在Kdevelop中添加SQLite的静态链接库

具体步骤: 
Kdevlop的project options->配置选项->C程序->编译器标志中写入如下参数: 
-L/home/sqlite-ix86-linux/lib -lsqlite3

其中/home/sqlite-ix86-linux/是你sqlite的安装目录。如果还不清楚,请参照下图操作

image_thumb

图1 打开project options

image

图2 设置编译器标志

 
 


2、sqlite3如何退出...>状态,你会了吗?

一般是进入SQL数据语言模式了,此时要想退出…>状态,只要输入一条完整的SQL语句就行了,也就是末尾要加上;(分号)这个符号就可以退回到sqlite>状态

3、sqlite不会把附加过的数据库文件统一管理。
习惯了使用SQL Server Management Studio了,在SQL Server Management Studio中当数据库被附加过了,那么我们就可以通过SQL Server Management Studio进行管理,而不必每次使用,每次都进行附加。但是在sqlite中,附加过的数据库不会在sqlite中存有什么记录,如果要再次管理某个数据库,你需要再次运行sqlite3 数据库名,才能进行数据库的操作。这一点很重要,之前我就在这个地方困惑了很久。


参考连接

./configure --prefix=/usr 什么意思

Linux环境变量的设置和查看方法

本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/archive/2013/06/14/3135222.html如需转载请自行联系原作者

kissazi2
相关文章
|
3月前
|
C++
jrtplib开源库系列之一:jrtplib介绍、安装和测试(window 10环境介绍)
关于jrtplib库网上已经有很多介绍,而且目前jrtplib作者已经停止更新(Apr 18, 2020),最新版本为v3.11.2。本系列内容也以该版本进行介绍。 相信你已经对RTP/RTCP协议有一定的了解,并想更深入的了解RTP协议的具体实现,jrtplib就是使用使用C++实现的RTP/RTCP协议。具体标准为RFC3550,如果想仔细阅读原文,但是对英文又有点吃力,可以参考我的博客RTP/RTCP中英文对照,在博客的后面有百度链接,是对RFC3550的中文翻译,可能很多地方不太准确,有些内容是自己添加进去的,希望不会影响你的阅读。
33 0
|
4月前
|
Web App开发 Java Linux
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
114 0
|
4月前
|
XML Java 测试技术
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
152 3
|
1月前
|
消息中间件 Kafka Linux
Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
【2月更文挑战第21天】Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
143 2
|
2月前
|
Go C语言
安装go-sqlite3包时报exec: "gcc": executable file not found in %PATH%解决办法
安装go-sqlite3包时报exec: "gcc": executable file not found in %PATH%解决办法
|
3月前
|
测试技术 API 芯片
阿萨聊测试:如何在Mac 电脑上安装Postman?
阿萨聊测试:如何在Mac 电脑上安装Postman?
阿萨聊测试:如何在Mac 电脑上安装Postman?
|
3月前
|
网络协议 网络安全 Go
Kali下安装渗透测试常用工具dnsx和dirsearch
Kali下安装渗透测试常用工具dnsx和dirsearch
56 0
|
3月前
|
存储 Kubernetes 安全
虚拟机测试Windows Server 2016原地升级2019,应用和数据完美保留
Windows Server 2016可以无缝升级到2019版本,确保应用程序和数据在原地升级过程中完整保留。
98 0
|
3月前
|
Kubernetes NoSQL Linux
linux安装Lua及代码测试
linux安装Lua及代码测试
|
4月前
|
Kubernetes Go API

热门文章

最新文章