ubantu 中使用 SQLite3 报错:fatal error: sqlite3.h: 没有那个文件或目录

在 C 程序中使用 SQLite3:

#include <stdio.h>
#include <sqlite3.h>

int main(int argc, char const *argv[]){
    sqlite3 *db;
    char *errmsg = NULL;
    int rc;

    // 打开数据库,若不存在则创建
    rc = sqlite3_open_v2("test.db", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
    if(rc != SQLITE_OK){
    	fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));
	return 1;
    }

    // 执行sql语句创建表
    const char *sql = "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT);";
    rc = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
    if(rc != SQLITE_OK){
    	fprintf(stderr, "SQL 错误: %s\n", errmsg);
	    sqlite3_free(errmsg);
    } else {
    	printf("表创建成功或已存在\n");
    }

    // 关闭数据库
    sqlite3_close(db);

    return 0;
}

编译时报错:

错误分析

遇到错误信息 “fatal error: sqlite3.h: No such file or directory” 说明编译器无法找到 sqlite3.h 文件,sqlite3.h 是 SQLite 数据库库的一部分,它包含了你需要使用 SQLite 数据库时所需的所有声明和类型定义。

解决方法

1. 检查系统中是否有 sqlite3.h 文件:

find /usr -name "sqlite3.h" 2>/dev/null || echo "未找到 sqlite3.h 文件"

如果找到 sqlite3.h 文件,则在编译时通过 -l 选项链接 sqlite3.h。

gcc -o sqlite3_exec_test sqlite3_exec_test.c -l sqlite3

2. 如果找不到 sqlite3.h 文件,需要安装 SQLite3.h 开发库

sudo apt-get update && sudo apt-get install -y libsqlite3-dev

重新编译即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值