错误:对`sqlite3_open'的未定义引用

tha*_*era 27 c++ sqlite

我正在尝试开始使用SQLite的C++ API.

#include <iostream>
#include <sqlite3.h>

using namespace std;

int main()
{
    sqlite3 *db;
    if (sqlite3_open("ex1.db", &db) == SQLITE_OK)
        cout << "Opened db successfully\n";
    else
        cout << "Failed to open db\n";

    return 0;
}   
Run Code Online (Sandbox Code Playgroud)

使用命令"g ++ main.cpp"进行编译会产生以下错误:

/tmp/ccu8sv4b.o: In function `main':
main.cpp:(.text+0x64): undefined reference to `sqlite3_open'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

什么可能出错?是不是在服务器中正确安装了sqlite3我正在编译它?

cas*_*nca 39

您需要将sqlite3库与您的程序链接:

g++ main.cpp -lsqlite3
Run Code Online (Sandbox Code Playgroud)


fil*_*set 5

您需要调整链接器标志以在sqlite3库中链接。库通常安装在/usr/lib/usr/lib64

或者,您可以将sqlite3.c文件复制到您的项目目录并将其编译为g++命令的一部分:

g++ main.cpp sqlite3.c 
Run Code Online (Sandbox Code Playgroud)

根据:http : //sqlite.org/cvstrac/wiki?p=HowToCompile