VS2010を使用してソースからSQLite v3をビルドしようとしていますが、どのように対処するのかわからない問題が発生します。VSitexのSQLite3で問題を構築する
これは私が持っているものです: VS2010 pro。 sqlite-amalgamation-3160100.zip Microsoftの記事を使用して:SQLite databases
これは私がやったことです:C++ Win32コンソールアプリケーションの作成した
- 。
- 無効なコンパイル済みヘッダー。
- を追加しましたプリプロセッサ定義:(!これを行ういけない、これが問題である) _HAVE_SQLITE_CONFIG_H; SQLITE_OS_WINRT; SQLITE_API = __ declspec(のdllexport)。 (「SQLiteのデータベース」セクション3で指定)
- config.hの作成した(現時点では空である。)
- は、プロジェクト内のsqlite-amalgamation-3160100.zipからソースファイルが含まれています。
- build。
私は私が解決しようとコンパイルエラー
1> sqlite3.c
1>e:\andre\ontwikkeling\sqlite\sqlite-amalgamation-3160100\sqlite3.c(38515): error C2065: 'MapViewOfFileFromApp' : undeclared identifier
1>e:\andre\ontwikkeling\sqlite\sqlite-amalgamation-3160100\sqlite3.c(38515): error C2099: initializer is not a constant
1>e:\andre\ontwikkeling\sqlite\sqlite-amalgamation-3160100\sqlite3.c(38524): error C2065: 'CreateFile2' : undeclared identifier
....
...の数を取得します。
最初のものは、次のコード切り取らに私をリード:MapViewOfFileFromApp functionに今「MapViewOfFileFromApp」リード
#if SQLITE_OS_WINRT && (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0)
{ "MapViewOfFileFromApp", (SYSCALL)MapViewOfFileFromApp, 0 },
#else
{ "MapViewOfFileFromApp", (SYSCALL)0, 0 },
#endif
、「呼び出しWindowsストアアプリのアドレス空間にファイルマッピングのビューをマップします。」 、私のプロジェクトセットアップが正しい構成を欠いている有効なマイクロソフトコール。
私はこの問題の回避策を得ることができましたが、他のエラーはSQLITE_OS_WINRTにのみ依存しており、回避することはできません。
私はいくつかの設定オプションが欠けているように見えますが、どの設定オプションがわからないのですか?私は文書化されたcompile time optionsをすべて読んだが、私が間違っていることを知ることはできない。
私はVS2010ソリューションの実用的な逸話を見つけようとしましたが、何も出てこなかった。そして私はここで同様の質問をしたのです! (これをカバーするものがあれば、私はそれを逃しました、申し訳ありません)
誰かが私が行方不明になっていることについて提案していますか?私はアイデアが不足しています。 MaxFurryの助言に
*編集2017年1月6日*
私は私がやったとまったく同じ手順を行いますがSQLITE_OS_WINRT;SQLITE_API=__declspec(dllexport);
を宣言せずにblog by David Craveyの手順に従いました。これらの2つを残して、問題を解決します。
私はマイクロソフトの記事で誤って解釈を誤解していました。
コンパイル時間の問題を解決しました。
大切にしてください。
???私はちょうどファイルからDLLを構築したい! (sqlite3.c + sqlite3.h)。あなたの答えは私には意味がありません。 – PapaAtHome
これは私が行った正確な手順ですhttps://dcravey.wordpress.com/2011/03/21/using-sqlite-in-a-visual-c-application/ – Maxfurry
私はdllを使用していない、私はしたいソースファイルから使用してください(ブログへのリンクのステップ11の代わりに、2から6までのステップをスキップします)。私はこのブログがSQLITE_OS_WINRTの設定について言及していないことに気付きました; SQLITE_API = __ declspec(dllexport);マイクロソフトの記事に記載されています。 SQLite_OS_WINRTを設定しないと、私の問題は解決しました。 – PapaAtHome