Подтвердить что ты не робот

Ошибка: undefined ссылка на `sqlite3_open '

Я пытаюсь начать работу с С++ API для SQLite.

#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;
}   

Компиляция с помощью команды "g++ main.cpp" дает следующую ошибку:

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

Что могло бы пойти не так? Не правильно ли установлен sqlite3 на сервере? Я компилирую это в?

4b9b3361

Ответ 1

Вам необходимо связать библиотеку sqlite3 вместе с вашей программой:

g++ main.cpp -lsqlite3

Ответ 2

Вам нужно настроить флаги компоновщика для ссылки в библиотеке sqlite3. Библиотеки обычно устанавливаются в /usr/lib или/usr/lib64

Кроме того, вы можете скопировать файл sqlite3.c в каталог проекта и скомпилировать его как часть команды g++:

g++ main.cpp sqlite3.c

в соответствии с: http://sqlite.org/cvstrac/wiki?p=HowToCompile