我想汇编的 伊斯兰法院联盟源码的扩展 静态链接到 重症监护病房.

这是我试过,可能的错误显而易见到你。

> 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

文件

伊斯兰法院联盟源码的扩展

下载伊斯兰法院联盟。c从sqlite.org

伊斯兰法院联盟4.2.1

下载ICU4C从icu-project.org

我的要求

  • 运行在Linux上窗
  • 只有一个文件,我已经销: libSqliteIcu.so.

知道还有什么我可以试试吗?

文档

有帮助吗?

解决方案

这个命令行的工作对我来说在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 

注意到订购的图书馆文件,以及使用的g++以确保c++运行时被引用,即使我们编纂一C的文件。

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

其他提示

我遇到了同样的问题,因为你。你可以编辑伊斯兰法院联盟\包括\utf8.h和替换下线

          #ifdef U_UTF8_IMPL
          U_EXPORT const uint8_t 
          #elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION)
          U_CFUNC const uint8_t
          #else
          U_CFUNC U_IMPORT const uint8_t /* U_IMPORT2? */ /*U_IMPORT*/ 
          #endif
          utf8_countTrailBytes[256];

              const uint8_t countTrailBytes[256];

这应该做的伎俩。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top