错误:"int sqlite3_open"重新声明为不同类型的符号"

Error: 'int sqlite3_open' redeclared as different kind of symbol'

本文关键字:声明 同类型 符号 新声明 sqlite3 int open 错误      更新时间:2023-10-16

我正在将C++SQLite3一起使用。我在代码中不断收到错误:

'int sqlite3_open' redeclared as different kind of symbol

我的代码是:

#include <cstdio>
#include <sqlite3.h>
#include <windows.h>
#include <string>
#include <iostream>
sqlite3 *db;
int sqlite3_open("lg.sqlite", &db);
int main() {
    return 0;
}

任何帮助不胜感激,谢谢。

简而言之,我的C++生锈了,因为你做了 sqlite3.h 的"包含",这已经有了 sqlite3_open(( 的定义。 因此,编译器会看到您的其他function并引发错误。

因此,如果您实际上看到sqlite3 *db;基本上是全局的(这可能会产生不可预见的后果(,但随后您放弃了 int sqlite3_open("lg.sqlite", &db);

它应该是什么样子...直接来自文档中的示例

int main(){
   sqlite3 *db;
   sqlite3_open("lg.sqlite", &db);
  return 0;
}

这将打开数据库,为下一个命令做好准备。