2016-11-13 9 views
0

Я пытаюсь встроить SQLite в свой проект. Я включил следующие файлы в каталог под названием lite: sqlite3.dll, sqlite3.h и sqlite3.lib.Как встроить SQLite в проект на C++

Это мой проект:

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

int main(int argc, char* argv[]) 
{ 
    sqlite3 *db; 
    char *zErrMsg = 0; 
    int rc; 

    rc = sqlite3_open("test.db", &db); 

    if(rc){ 
     fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); 
     return(0); 
    }else{ 
     fprintf(stderr, "Opened database successfully\n"); 
    } 
    sqlite3_close(db); 
} 

я получаю следующие ошибки при запуске проекта:

:-1: error: cannot find -lsqlite3d 
collect2.exe:-1: error: error: ld returned 1 exit status 

Что я могу делать неправильно?

Я работаю в Qt. Это мой .pro файл:

TEMPLATE = app 
CONFIG += console c++11 
CONFIG -= app_bundle 
CONFIG -= qt 

SOURCES += main.cpp 

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lite/ -lsqlite3 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lite/ -lsqlite3d 
else:unix: LIBS += -L$$PWD/lite/ -lsqlite3 

INCLUDEPATH += $$PWD/lite 
DEPENDPATH += $$PWD/lite 

ответ

3

Поскольку вы уже используете Qt, почему бы вам не использовать Qt SQL module? Вы собираетесь сэкономить много боли, вы будете обходить такого рода проблемы сцепления, просто добавив

QT += sql 

вам Qt файл проекта и добавление

#include <QtSql> 

вам Surce файлы. У вас будет много классов модели, которые облегчат интеграцию базы данных в пользовательский интерфейс приложения.

Это рекомендуемый способ использования SQL в приложениях Qt, если у вас нет очень особых потребностей. Вы можете использовать Qt различные SQL-модули под капотом (SQLite, MySQL, ...), но Qt будет абстрагировать все это для вас.

+0

Можно ли каким-либо образом просматривать базу данных Qt SQL в графическом интерфейсе, возможно, через браузер? –

+1

Да, посмотрите на 'QSqlTableModel', модуль sql хорошо работает с картой модели Qt. –

Смежные вопросы