编译静态链接到icu的icu sqlite扩展

Geo*_*lly 6 sqlite icu

我想编译静态链接到icuicu sqlite扩展.

这就是我尝试过的,也许这个错误对你很明显.

> cd icu/source
> ./runConfigureIcu Linux --enable-static --with-packaging-format=archive
...
> make

> cd ../../icu-sqlite
> gcc -o libSqliteIcu.so -shared icu.c -I../icu/source/common
      -I../icu/source/i18n -L ../icu/source/lib -lsicuuc -lsicui18n -lsicudata
...
> sqlite3
> .load "libSqliteIcu.so"
Undefined symbol utf8_countTrailBytes

icu sqlite扩展

从sqlite.org下载icu.c

ICU 4.2.1

从icu-project.org下载ICU4C

我的要求

  • 在Linux和Windows上运行
  • 我只需分发一个文件:libSqliteIcu.so.

知道我还能尝试什么吗?

文档

Amn*_*non 3

这个命令行在 Linux 上对我有用:

g++ -shared --language c  -o libSqliteIcu.so icu.c  -I../icu/source/common -I../icu/source/i18n -lpthread -lm   -L../icu/source/lib -lsicui18n -lsicuuc -lsicudata  -lpthread -lm 
Run Code Online (Sandbox Code Playgroud)

请注意库文件的顺序,以及使用 g++ 来确保引用 c++ 运行时,即使我们正在编译 C 文件。

注意。我使用了 的输出icu-config --prefix=../icu/source --ldflags