2016-11-13 8 views
0

私は自分のプロジェクトにSQLiteを埋め込みたいと思っています。 liteというディレクトリに以下のファイルを含めました。sqlite3.dll、sqlite3.h、sqlite3.libです。私は間違って何をしていることができSQLiteをC++プロジェクトに埋め込む方法

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

:私は、プロジェクトを実行したときに、私は次のエラーを取得

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

は、これは私のプロジェクトのですか?

私はQtで働いています。あなたがQt SQL moduleを使用していないなぜあなたはすでにQtのを使用しているので

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

:これは私の .PROファイルのですか?あなたは多くの痛みを保存しようとしている、あなただけに

QT += sql 

Qtのプロジェクトファイルを追加し、あなたに

#include <QtSql> 

surceファイルを追加することによって、リンケージこの種の問題をバイパスします。データベースのアプリケーションUIへの統合を容易にする多くのモデルビュークラスが用意されています。

非常に特殊なニーズがない限り、これはQtアプリケーションでSQLを使用するために推奨される方法です。あなたはQtで異なるSQLエンジンを使用することができます(SQLite、MySQL、...など)が、Qtはこれをすべて抽象化します。

+0

Qt SQLデータベースは、ブラウザ経由でGUIに表示できますか? –

+1

はい、 'QSqlTableModel'を見れば、sqlモジュールはQtモデルビューフレームワークでうまく動作します。 –

関連する問題