我尝试在基本的c ++应用程序中设置sqlite3扩展。我知道该站点上仍然有主题,但是我已经尝试了所有有关此问题的建议。我不能继续前进,没有什么是正确的解决方案。我想编译类SQLConnector.cpp(请参见下面的文件夹结构)。
我不能无错误地编译应用程序。
我已经尝试过的:
我已经在以下位置安装了sqlite3:
C:\sqlite3\
我已经下载了sqlite-amalgamation并创建了一个具有以下结构的文件夹:
sqlite_test
├── SQLConnector.cpp
├── shell.c
├── sqlite3.c
├── sqlite3.h
└── sqlite3ext.h
我使用此命令来编译代码,但是它不起作用:
g++ SQLConnector.cpp - l sqlite3
这是基本代码段的源代码:
#include "sqlite3.h"
#include "sqlite3ext.h" // I have tried it also without this file.
#include <iostream>
int main()
{
sqlite3 *db;
char *strErrorMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if (rc)
{
std::cout << "Can't open database " << sqlite3_errmsg(db) <<
std::endl;
return 1;
}
std::cout << "Opened database successfully!" << std::endl;
sqlite3_close(db);
return 0;
}
这是错误,我得到了:
SQLConnector.cpp: In Funktion »int main()«:
sqlite3ext.h:426:40: Fehler: »sqlite3_api« wurde in diesem
Gültigkeitsbereich nicht definiert
#define sqlite3_open sqlite3_api->open
^
SQLConnector.cpp:20:10: Anmerkung: bei Substitution des Makros
»sqlite3_open«
rc = sqlite3_open("test.db", &db);
^~~~~~~~~~~~
sqlite3ext.h:426:40: Anmerkung: empfohlene Alternative: »sqlite3_log«
#define sqlite3_open sqlite3_api->open
^
SQLConnector.cpp:20:10: Anmerkung: bei Substitution des Makros
»sqlite3_open«
rc = sqlite3_open("test.db", &db);
我不知道应将哪个路径插入-l选项。如果删除-l选项并编译sqlite3.c,则会收到300多个错误:-D
我该怎么办?我可能不知道如何设置扩展? 有人可以帮我看看他的设置吗?
我使用VSCode,但是我在外壳上手动编译。