如何将 SQLite 嵌入到 C++ 项目中

Pro*_*Rev 3 c++ qt

我正在尝试将 SQLite 嵌入到我的项目中。我已将以下文件包含到名为lite的目录中:sqlite3.dll、sqlite3.h 和 sqlite3.lib。

这是我的项目:

#include <stdio.h>
#include <lite/sqlite3.h>

int main(int argc, char* argv[])
{
   sqlite3 *db;
   char *zErrMsg = 0;
   int rc;

   rc = sqlite3_open("test.db", &db);

   if( rc ){
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
      return(0);
   }else{
      fprintf(stderr, "Opened database successfully\n");
   }
   sqlite3_close(db);
}
Run Code Online (Sandbox Code Playgroud)

当我运行项目时,出现以下错误:

:-1: error: cannot find -lsqlite3d
collect2.exe:-1: error: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

我在 Qt 工作。这是我的.pro文件:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lite/ -lsqlite3
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lite/ -lsqlite3d
else:unix: LIBS += -L$$PWD/lite/ -lsqlite3

INCLUDEPATH += $$PWD/lite
DEPENDPATH += $$PWD/lite
Run Code Online (Sandbox Code Playgroud)

Eme*_*pon 5

既然你已经在使用 Qt 为什么不使用Qt SQL 模块呢?您将省去很多痛苦,只需添加即可绕过此类链接问题

QT += sql
Run Code Online (Sandbox Code Playgroud)

到您的 Qt 项目文件,并添加

#include <QtSql>
Run Code Online (Sandbox Code Playgroud)

向您提供文件。您将拥有许多模型视图类,它们有助于将数据库集成到应用程序 UI 中。

这是在 Qt 应用程序中使用 SQL 的推荐方法,除非您有非常非常具体的需求。您可以让 Qt 在底层使用不同的 SQL 引擎(SQLite、MySQL...),但 Qt 会为您抽象所有这些。