[已解决]
我要做的就是打开我的“项目树” like this中的sqlite3.c
文件,并在标题中包含sqlite3.h
。
我正在尝试将我的C程序(使用代码块)连接到数据库。我已经从sqlite website下载了所有关键文件,例如shell.c
,sqlite3.c
,sqlite3.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来实现。
答案 0 :(得分:2)
合并期望您将合并的所有文件都放在项目文件夹中,并在要访问sqlite的源中添加#include "sqlite3.h"
,并使sqlite3.ca成为项目的成员。
假设使用gcc命令行编译器,则应该执行以下操作:
gcc main.c sqlite3.c -lpthread -o foo
这里不需要库,永远不要尝试包含sqlite3.c
。