在 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
重新编译即可。