Linux上编译安装sqlite3库

如何在Linux上编译安装sqlite3库

编译安装sqlite3库

**

1、下载压缩包

链接:https://pan.baidu.com/s/1bO0bzR95CEdhgzmoodaF7A
提取码:hosq

2、将压缩包拷贝到Linux目录下

这里我存放在windows系统的共享文件夹里,这样在Linux系统里也会存在这个文件
在这里插入图片描述

3、将压缩包解压

命令:tar -xzvf sqlite-autoconf-3110000.tar.gz
Linux上编译安装sqlite3库_第1张图片
在这里插入图片描述

4、配置(configure)

Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。
其中–prefix选项是配置安装的路径
命令:./configure --prefix=/home/sqlite3/
在这之前,要先通过命令:sudo su 切换到管理员
而且在home目录下要有sqlite3文件夹
当然,你也可以修改这个路径
Linux上编译安装sqlite3库_第2张图片
这里会生成makefile文件

5、编译

命令:make
(防止之前编译安装过想重新开始可以先执行命令:make clean)
这个过程需要一点时间
Linux上编译安装sqlite3库_第3张图片
完成后可以看到home目录下sqlite3文件夹还是为空
在这里插入图片描述
这里并不是出错了,而是还没有安装,之前我就是以为出错了,所以所有步骤都重头再来一遍。

6、安装

命令:make install
安装到指定目录
在这里插入图片描述
安装成功后,指定目录如下图所示
在这里插入图片描述
include文件夹里面放的是头文件
lib文件夹里面放的是库

7、拷贝文件到系统下

命令:
cp lib/libsqlite3.* /usr/lib/
cp include/* /usr/include/
在这里插入图片描述

8、测试

#include 
#include 
#include 
#include 
#include 
using namespace std;
int main()
{
	sqlite3* db;
	char buff[100];
	char* errmsg;
	char** result;
	int row, col, i, j;
	int ret;
	ret = sqlite3_open("user.db", &db);//创建或打开数据库
	if (ret != SQLITE_OK)
	{
		cout << "Failed to open " << endl;
	}
	//建表
	const char* creat_UserTabSql = "create table if not exists user_table(\
								user_id varchar(16) primary key,\
								user_name varchar(10) not NULL,\
								user_pass varchar(10) not NULL); ";
	ret = sqlite3_exec(db, creat_UserTabSql, NULL, NULL, &errmsg);
	//插入
	const char* insert_UserTabSql_1 = "insert into user_table(user_id,user_name,user_pass) values ('1234','czx','5678');";
	const char* insert_UserTabSql_2 = "insert into user_table(user_id,user_name,user_pass) values ('1235','ccc','6666');";
	ret = sqlite3_exec(db, insert_UserTabSql_1, NULL, NULL, &errmsg);
	ret = sqlite3_exec(db, insert_UserTabSql_2, NULL, NULL, &errmsg);
	//查询
	const char* select_UserTabSql = "select * from user_table;";
	ret = sqlite3_get_table(db, select_UserTabSql, &result, &row, &col, &errmsg);
	if (ret != SQLITE_OK)
	{
		sprintf(buff, "getData查询  错误编码%d 错误信息%s %s", ret, errmsg, select_UserTabSql);
		cout << buff << endl;
		return -1;
	}
	//打印
	int index = col;
	for (i = 0; i < row; i++)
	{
		for (j = 0; j < col; j++)
		{
			printf("%s", result[index]);
			index++;
		}
		printf("\n");
	}
	sqlite3_close(db);
	return 0;
}

先生成解决方案
这在VS里面生成解决方案会失败,不过没关系
到Linux进行编译,记得带上 -lsqlite3

命令:g++ main.cpp -o main -lsqlite3
在这里插入图片描述


你可能感兴趣的:(linux)