2017-04-14 51 views
1

Windows上でSQLiteをC++で使用しようとしています。私のコードは、エラーメッセージを返します。このC++はSQLite3を見つけることができません

#include <stdio.h> 
#include <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); 
} 

のように見える

あり、この上の他のいくつかのstackoverflowの質問されているが、それらはすべて #include "sqlite3.h"または #include <full_path_to_sqlite3>、仕事の誰にも負けない #include <sqlite3.h>を変更することで解決された
C:\sqlite: No such file or directory 
compilation terminated. 

コンパイル時にも含まれて解決されましたが、

CMDに通常私のためにうまく sqlite3作品

は、私はこれをどのように修正すればよいので、私には奇妙である

c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lsqlite3 
collect2.exe: error: ld returned 1 exit status 

答えて

0

これは基本的にリンクの問題です。

例ソリューション:

  • あなたがまだの場合は、コンパイラが実際にsqliteのは

  • を含んで見て、追加の にライブラリヘッダフォルダを追加していることを確認し、ディレクトリ

  • が含まれます

一歩一歩進み、すべてが正しいかどうか確認してください。

+0

2番目のポイントを拡大できますか?私はこれをsqlite.cとsqlite.hのあるフォルダに入れ、iveは2行目を '#include" sqlite3.h "'に変更し、sqlite3_openへの未定義のリファレンスを持っています。 – sawyerWeld

+0

スタックオーバーフロー: http://stackoverflow.com/questions/4537377/add-extra-include-lib-paths-to-mingw http://stackoverflow.com/questions/1985764/how-to-add-3rd -party-libraries-to-mingw 公式MinGWウェブサイト: http://www.mingw.org/wiki/HOWTO_Specify_the_Location_of_Libraries_for_use_with_MinGW http://www.mingw.org/wiki/includepathhowto –

関連する問題