将sqlite连接到C程序

时间:2018-08-10 07:59:58

标签: c sqlite

[已解决]
我要做的就是打开我的“项目树” like this中的sqlite3.c文件,并在标题中包含sqlite3.h

我正在尝试将我的C程序(使用代码块)连接到数据库。我已经从sqlite website下载了所有关键文件,例如shell.csqlite3.csqlite3.h和{随附的 amalgamation zip文件。 {1}}。

我发现此this tutorial是关于如何在代码块上使用库的。这很简单,但是后来我意识到,合并 zip随附的文件都不是sqlite3ext.h.lib。我知道sqlite使用库,但是我上面列出的所有文件都是源代码文件,它们可以自己访问这些库。

How to compile sqlite->在他们的网站上,他们有一些不错的信息:所有内容都包含在一个代码文件中,因此很容易放入较大的C或C ++程序的源代码树中。 它们表示.a文件。但是,它们“落入源代码树”是什么意思?

在同一页面上,有一节编译命令行界面。我已经了解了要点...我还发现了sqlite3.c tutorial here,所以我下载了Shell,现在可以创建/修改数据库了。尽管我感觉我已经很接近可以在C程序上运行它了,但是我仍然无法从源文件或shell到代码中实现任何数据库。
有什么想法吗?

sqlite shell



另外,在Command Line Shell For SQLite 上,您可以找到有关如何将现有数据(由于我仍然无法将DB连接到C程序而从C程序外部创建)传输到.txt文件的详细说明。很高兴知道所有内容,但不完全是我想要的。我可以使用大量的#include <stdio.h> // printf #include <sqlite3.h> // SQLite header (from /usr/include) int main() { sqlite3 *db; // database connection int rc; // return code char *errmsg; // pointer to an error string /* * open SQLite database file test.db * use ":memory:" to use an in-memory database */ rc = sqlite3_open(":memory:", &db); if (rc != SQLITE_OK) { printf("ERROR opening SQLite DB in memory: %s\n", sqlite3_errmsg(db)); goto out; } printf("opened SQLite handle successfully.\n"); /* use the database... */ out: /* * close SQLite database */ sqlite3_close(db); printf("database closed.\n"); } fread等来使它工作……但这不如在程序中实现实际的DB那样好。例如,如果以后我想将fprintf变成program.c,则可以使用嵌入program.exe内的DB来实现。

1 个答案:

答案 0 :(得分:2)

合并期望您将合并的所有文件都放在项目文件夹中,并在要访问sqlite的源中添加#include "sqlite3.h",并使sqlite3.ca成为项目的成员。

假设使用gcc命令行编译器,则应该执行以下操作:

gcc main.c sqlite3.c -lpthread -o foo

这里不需要库,永远不要尝试包含sqlite3.c