SQLite:错误:C1083:无法打开包括文件:'sqlite3.h'

3

我正在跟随这个教程学习如何在c\c++中使用SQLite。然而,在编译以下代码时:

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

int main(int args, char* argv[]){
    sqlite *db;
    char *zErrMsg = 0;
    int rc;   
    rc = sqlite3_open("database_1.db", &db);
    if(rc){
      fprintf(stderr, "Can't open databse: %s\n", sqlite3_errmsg(db));
      exit(0);
    }else{ 
      fprintf(stderr, "Opened database successfully\n");
    }
    sqlite3_close(db);
}

我收到以下错误信息:C1083:无法打开包括文件:“sqlite3.h”:没有那个文件或目录。
问题是什么以及如何解决它。
注意:按照这个指南下载和安装了sqlite。
3个回答

4

请确保您的编译器能够正确识别sqlite3的头文件。

在gcc中,您需要执行以下操作:

g++ main.cpp -I<path_to_sqlite3>

没有使用"-I"参数,编译器将无法看到你的 #include。

如果sqlite3.h文件与你的“main.cpp”文件在同一目录中,请将你的 include 更改为:

#include "sqlite3.h"

如果您不确定两者之间的区别,请阅读: #include < > 和 " "之间的区别

好的,文件夹的完整路径以及引号的使用使得区别明显.. 谢谢。 - McLan

2

看起来您需要安装libsqlite3-dev:

sudo apt-get install libsqlite3-dev

3
我可以。但需要说明的是,Windows平台上没有libsqlite3-dev软件包,您需要手动编译SQLite或使用第三方库来获取SQLite。 - Ankush Rathi
@NathanBasanese 因为sqlite3是软件程序,而libsqlite3是库,而libsqlite3-dev是包含文件。 - fiorentinoing

2

谢谢@Marius,但是我没有添加额外的包含文件夹,而是直接放置了头文件的完整路径。基本上是因为我只使用它一次,虽然这不是一个实用的解决方案。 - McLan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接