3

私は Code::Blocks と SQLite の完全な初心者であり、C++ の基本的な知識を持っています。現在、Ubuntu 11.04 を使用しています。

SQLite Amalgamation hereをダウンロードしました。zip ファイルを解凍すると、中shell.cに 、sqlite3.csqlite3.h、 の4 つのファイルがありますsqlite3ext.h。これらのファイルを (たとえば) コンソール プロジェクトに単純に追加すると、エラーが発生します。ダウンロードした sqlite の .c には、それぞれ独自のメイン関数があります。それらをプロジェクトから削除すると、エラーがなくなり、 を呼び出すことができます#include "sqlite3.h"。私はこれに従おうとしていますが、ここから最初の2行のコードを試してみましたが、エラーが発生しました: undefined reference to sqlite3_open.

これらの .h をコンソール プロジェクトに直接追加するのは正しい使用方法ではないと思いますが、よくわかりません。

それらをどのように正確に使用すればよいですか?C++ プログラムでそれらを使用するにはどうすればよいですか?

どんな助けでも大歓迎です。:)

編集:私はまた、これに従って、それらのsqliteファイルの.aファイルを作成しようとしまし。試してみると、エラーが発生します: cannot find -lsqlite.

4

3 に答える 3

5

わかった!私がやったことで問題が発生したことはありましたが. 以前に [プロジェクト] > [ビルド オプション] > [リンカー設定] で追加した .a ファイルを削除するのを忘れたため、問題が発生しました..

SQLite を追加するために行った手順は次のとおりです (同じ問題がある可能性がある場合)。

  1. SQLite Amalgamation から抽出したファイルをプロジェクトのディレクトリにコピーします。

  2. sqlite ファイルを追加します ([プロジェクト] > [ファイルの追加])。shell.c を除きます (複数関数エラーの原因となるファイルです)。

  3. コンパイルします (はい、単純な Ctrl+f9 です)。

  4. ここにエラーがあります: undefined reference to pthread_mutexattr....。これらは、[プロジェクト] > [ビルド オプション] > [プロジェクト名] を上DebugRelease左上隅で強調表示 > [リンカー設定] に移動し、 "-lpthread"(引用符なしで) に追加することで修正されますOther linker options:

  5. さらにいくつかのエラーが見つかりました: undefined reference to dlopen, dlerror....。先ほど追加した「-lpthread」のすぐ下に「-ldl」を追加します。

終わり :)

于 2012-07-20T07:37:21.080 に答える
2

最初に sqlite コードをコンパイルしてから#include "sqlite3.h"、プロジェクトの必要な場所にコンパイルする必要があります。

UPD: これを試してください:

このパッケージを sqlite サイトからダウンロードし、どこか、たとえば "sqlite" というフォルダに展開します。ターミナルを開き、このフォルダーに移動します。その中で、実行します

./configure
sudo make 
sudo make install

そして何が起こるか見てください。それ自体を自動的に構築する必要があります。アーカイブ内にある README ファイルも参照してください。

于 2012-07-20T07:00:08.310 に答える