2016-08-17 7 views
0

私はこれを理解しようと一日を費やしました。私は助けが必要です!だから、私はCプログラムを書くことができるようにEclipseとMinGWをインストールしました。私はこのすべてに新しいです。私はsqliteデータベースにアクセスできる必要があります。だから私はsqliteの合併をダウンロードし、それをC:/ sqlite3に解凍し、2つの.cファイルと2つの.hファイルを含んでいます。例では、私は次のように、彼らはsqlite.hヘッダファイルをインクルードオンライン見てきました:CプログラムのためにEclipse MinGWとSqliteを一緒に使用することはできません

#include <sqlite.h> 

だから私は、私は私のsqliteの情報を保持しているフォルダが含まれて追加する必要があると思います。そこで、私のプロジェクトをクリックし、Properties> C/C++ General> Paths and Symbolsを選択します。 "Includes"タブが選択され、言語GNU Cが強調表示された状態で、IncludeディレクトリC:\ sqlite3を追加します。これまでのところ問題はなく、私はコンソールに自分の名前を表示するプロジェクトを構築することができます。

今私はチュートリアルのサイトからいくつかのサンプルコードを追加します。

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

int main(int argc, char* argv[]) 
{ 
    sqlite3 *db; 
    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); 
} 

私はsqlite3の機能への未定義の参照を主張する3つのエラーが発生します。だから私は、コンパイラでsqlite3へのリンクを追加する必要があると思う。これで、Properties> C/C++ Build/Settingsに行き、-lsqlite3をMinGW C Linkerコマンドラインに追加しました。今、私はプロジェクトをビルドするとき、私のエラーは消えるが、私はこれを言うコンパイルエラーを取得:

c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/6.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsqlite3 

それはMinGWのディレクトリでsqlite3のファイルを探しているように見えます。ハマった。私はMinGWディレクトリにファイルを貼り付けてみましたが、それでもうまくいきません。私は世界に明白な何かを見逃していることを知っていますが、私は頭の上に残っている髪の毛が約5個しかなく、実際にはある程度の洞察力を使うことができます。 MinGWを使ってEclipseをセットアップし、Sqliteにアクセスするのを手伝ってください。ありがとう!

+0

'-lsqlite3'は、あなたがコンパイラを呼び出すことによってリンクした場合(つまり:gcc、clang、etc ...)、' ld'とリンクしているときに '-l sqlite3 -L ' – dvhh

答えて

0

合併は他のソースファイルと一緒にコンパイルされるはずです。あたかも独自のソースファイルのように、.cファイルをプロジェクトに追加するだけです。

+0

あなたが提案したようにsqlite.cとsqlite.hをsrcフォルダに追加しました。私は先に述べたsqlite3フォルダへのパスを取り除きました。私はMinGWリンカーで-lsqlite3コマンドを使いました。私はまだ3つの問題があります。私のsqlite3.cファイルには、srcフォルダの警告三角形があります。 #includeの行には、致命的なエラーが表示されます。sqlite3.hは、そのようなファイルやディレクトリはありません。 \ src \ RealDealProcessor.c:12:21:致命的なエラー:sqlite3.h:そのようなファイルやディレクトリがありません – sax

+0

'-lsqlite3'を削除してください。 .hファイルのディレクトリをインクルードパスに追加する必要があります。 –

+0

あなたは男です!私はそれが働いていると思います。それは構築され、エラーはなく、期待どおりに実行されました。唯一の問題は、sqlite3.cフォルダにまだ少しの警告の三角形があり、私はなぜそれが分かりませんかということです。私はどのように私が見つけることができるか知っていますか? – sax

関連する問題