设置c 代码示例,带有sqlite3不起作用

Setup C++ code example with sqlite3 not working

本文关键字:带有 sqlite3 不起作用 代码 设置      更新时间:2023-10-16

我尝试在基本C 应用程序中设置SQLITE3扩展。我知道此站点上仍然有线程,但是我已经尝试了所有有关此问题的建议。我不能继续前进,没有什么是正确的解决方案。我想编译类SQLConnector.cpp(请参见下面的文件夹结构(。

我无法在没有错误的情况下编译应用程序。

我已经尝试了:

我已经安装了sqlite3 at:

  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,但我在外壳上手动编译。

放置宏" sqlite_extension_init1"在#include <sqlite3ext.h>行之后单独在线上。
<sqlite3ext.h>也包括<sqlite3.h>