0

我尝试通过Emscripten ( clang )交叉编译icu4c 51.1

emconfigure source/configure --host=i386-pc-linux-gnu --prefix=${myprefix} --enable-static --disable-shared --disable-dyload --disable-renaming CXXFLAGS='-DU_USING_ICU_NAMESPACE=0' CPPFLAGS='-DU_DISABLE_RENAMING=1'
emmake make
emmake make install

它可以很好地编译大多数源代码,但失败了

Unpacking ../source/data/in/icudt51l.dat and generating out/tmp/icudata.lst (list of data files)
LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH  ../bin/icupkg -d ./out/build/icudt51l --list -x \* ../source/data/in/icudt51l.dat -o out/tmp/icudata.lst
run-detectors: warning: unable to exec /usr/bin/lli-2.8: No such file or directory
run-detectors: warning: unable to exec /usr/bin/lli-2.9: No such file or directory
LLVM ERROR: Program used external function 'findBasename' which could not be resolved!
make[1]: *** [out/tmp/icudata.lst] Error 1
make[1]: Leaving directory `/home/andreas/.emscripten-libs/sources/icu4c/51.1/data'
make: *** [all-recursive] Error 2

所以我想知道,它试图在哪里找到findBasename以及这些数据编译的全部内容。

编辑:

错误消息来自icupkg使用 clang 构建,在这种情况下没有意义。如何指定库是用clang构建的,而工具是用另一个编译器构建的?

4

1 回答 1

0

听起来它无法找到,我猜,ICU 工具实用程序库在 ../lib - 可能会尝试在 icupkg 上运行 ldd 或等效项

于 2013-04-26T01:09:54.170 回答