Ответ 1
Вам необходимо связать библиотеку sqlite3 вместе с вашей программой:
g++ main.cpp -lsqlite3
Я пытаюсь начать работу с С++ 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 на сервере? Я компилирую это в?
Вам необходимо связать библиотеку sqlite3 вместе с вашей программой:
g++ main.cpp -lsqlite3
Вам нужно настроить флаги компоновщика для ссылки в библиотеке sqlite3. Библиотеки обычно устанавливаются в /usr/lib или/usr/lib64
Кроме того, вы можете скопировать файл sqlite3.c в каталог проекта и скомпилировать его как часть команды g++:
g++ main.cpp sqlite3.c
в соответствии с: http://sqlite.org/cvstrac/wiki?p=HowToCompile