2011-07-05 48 views

回答

8

1)你可以編譯它的SQLite 的動態延伸援引http://www.sqlite.org/cvstrac/fileview?f=sqlite/ext/icu/README.txt

編譯和使用的ICU擴展的最簡單方法是建立 並把它作爲一個可動態加載的SQLite擴展。要做到這一點 使用gcc在* nix:

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

您可能需要添加 「-I」 標誌,使GCC可以找到sqlite3ext.h 和sqlite3.h。生成的共享庫libSqliteIcu.so可能會以與其他任何可動態加載的 擴展相同的方式加載到sqlite中,即 。

(負荷在SQLite的提示.load libSqliteIcu.so

2)您可以編譯SQLite的啓用了ICU。據http://www.sqlite.org/compile.html 你應該定義宏SQLITE_ENABLE_ICU

添加-DSQLITE_ENABLE_ICU到CFLAGS變量或在一些配置文件中添加#define SQLITE_ENABLE_ICU

好的,這裏有些東西在標準文檔中沒有描述。這裏啓用呼叫與ICU配置的例子:

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

您還應該安裝icu-config程序(它是從libiculibicu-dev包)

+0

將鏈接動態嗎? 如何靜態鏈接? –

+0

如果你有一個動態libicu.so(你會),它會動態鏈接。要將鏈接更改爲靜態,請運行'icu-config --ldflags'並檢查其輸出是否包含-Bstatic或-Bdynamic。如果沒有,請將LDFLAGS更改爲'LDFLAGS =「 - Wl,-Bstatic」\'icu-config --ldflags \'「-Wl,-Bdynamic」' – osgx

+0

我得到sqlite3.c :(.text + 0xcb64b):undefined參考'utf8_nextCharSafeBody_3_6' –