2017-10-17 16 views
0

ロード可能な拡張機能としてFTS5を構築しようとしています。SQLite:FTS5のロード可能な拡張機能の構築に失敗

私はSQLiteソースをダウンロードして、./configuremake fts5を正常に実行し、fts5.{c,h}個のファイルを取得しました。今

私が得る拡張のための動的ライブラリを構築しようとしている:私は間違って

gcc -g -fPIC -dynamiclib -o fts5.dylib fts5.c 
In file included from fts5Int.h:18:0: 
fts5_storage.c: In function 'sqlite3Fts5StorageOpen': 
fts5_storage.c:305:9: error: 'sqlite3_api_routines' has no member named '__builtin___snprintf_chk' 
In file included from /usr/include/secure/_string.h:33:0, 
       from /usr/include/string.h:192, 
       from fts5Int.h:21: 
fts5_storage.c:305:26: warning: passing argument 1 of '__builtin_object_size' makes pointer from integer without a cast 
fts5_storage.c:305:26: note: expected 'const void *' but argument is of type 'int' 
In file included from fts5Int.h:18:0: 
fts5_storage.c:308:11: error: 'sqlite3_api_routines' has no member named '__builtin___snprintf_chk' 
In file included from /usr/include/secure/_string.h:33:0, 
       from /usr/include/string.h:192, 
       from fts5Int.h:21: 
fts5_storage.c:308:28: warning: passing argument 1 of '__builtin_object_size' makes pointer from integer without a cast 
fts5_storage.c:308:28: note: expected 'const void *' but argument is of type 'int' 

何をしているのですか?

私はこのエラーを取得していMacOSの

Linux上で、十分に興味深い(とgcc5付き)

でMacPortsのからのgcc 4.9と5.5を試してみた:

❯ gcc -g -fPIC -shared -o fts5.so fts5.c 
fts5.h:24:21: fatal error: sqlite3.h: No such file or directory 
compilation terminated. 

そして案の定ソースディレクトリのルートにsqlite3.hはありませんが、makeステップ中に作成する必要がありますか? 私はもちろんlibsqlite3-devをインストールすることができますが、私はすでにすべてのsqliteソースを持っています。どうしてですか?

答えて

0

SQLite開発チームのDan Kennedyのおかげで、問題は解決されました。

第一の問題は、MacOSの上でコンパイルした場合SQLiteのソースコードと実際の問題であるように見え、それは今ここに固定しています:それは、別のmakeステップを必要とするためhttp://www.sqlite.org/src/info/cd0471ca9f75e7c8

第二の問題は生じていないヘッダファイルについてでした。実際のビルド手順は実際には次のようになります。

./configure 
make fts5.c sqlite3.h sqlite3ext.h 
gcc -O2 -fPIC -shared fts5.c -o fts5.dylib 
関連する問題