题
我想汇编的 伊斯兰法院联盟源码的扩展 静态链接到 重症监护病房.
这是我试过,可能的错误显而易见到你。
> 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
文件
伊斯兰法院联盟源码的扩展
伊斯兰法院联盟4.2.1
我的要求
- 运行在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];
这应该做的伎俩。
不隶属于 StackOverflow