Я пытаюсь настроить расширение sqlite3 в базовом приложении c ++. Я знаю, что на этом сайте все еще есть темы, но я перепробовал все предложения по этой проблеме. Я не могу двигаться дальше, ничто не было правильным решением. Я хочу скомпилировать класс 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, но компилирую вручную на оболочке.