2011-07-05 19 views

答えて

8

1)あなたは、ICUの拡張子をコンパイルして使用するための最も簡単な方法は、 を構築し、動的にロード可能なSQLiteの拡張としてそれを使用することであるSQLiteの のような動的拡張がhttp://www.sqlite.org/cvstrac/fileview?f=sqlite/ext/icu/README.txt

を引用し、それをコンパイルすることができます。この * nixの上でGCCを使用して行うには:

gcc -shared icu.c `icu-config --cppflags --ldflags` -o libSqliteIcu.so 

をあなたはgccがsqlite3ext.h とsqlite3.hを見つけることができるように、 "-I" のフラグを追加する必要があります。結果として得られる共有ライブラリlibSqliteIcu.soは、その他の動的にロード可能な 拡張と同じ方法でsqliteにロードされた です。

あなたが有効になってICUでのSQLiteをコンパイルすることができます

2)(ロードがSQLiteのプロンプトで.load libSqliteIcu.soです)。 http://www.sqlite.org/compile.html によると、あなたはSQLITE_ENABLE_ICUマクロを定義する必要があります。

はCFLAGS変数に-DSQLITE_ENABLE_ICUを追加するか、いくつかの設定ファイルに#define SQLITE_ENABLE_ICUを追加します。

さて、ここでは標準的なドキュメントには記載されていないものがあります。ここではICUで設定呼び出す例が有効になっている:

CFLAGS='-O3 -DSQLITE_ENABLE_ICU' CPPFLAGS=`icu-config --cppflags` LDFLAGS=`icu-config --ldflags` ./configure 

あなたをもicu-configプログラムがインストールされている必要があり、それが動的に右リンクする

+0

(それはlibicuまたはlibicu-devパッケージからですか)? どのようにして静的にリンクできますか? –

+0

ダイナミックなlibicu.so(あれ)があれば動的にリンクします。リンケージを静的に変更するには、 'icu-config --ldflags'を実行し、出力に-Bstaticまたは-Bdynamicが含まれているかどうかを確認します。そうでない場合は、LDFLAGSをLDFLAGS = "-Wl、-Bstatic"に変更します。-Wl、-Bdynamic "' – osgx

+0

sqlite3.c :(。text + 0xcb64b):undefined 'utf8_nextCharSafeBody_3_6 ' –

関連する問題