__aeabi_f2lz在哪里实施?

时间:2017-03-23 22:59:53

标签: android-ndk linker clang

我有一个库,它依赖于我从第三方获得的静态库(libexample.a)。 我的构建在链接阶段失败抱怨__aeabi_f2lz未定义。我检查了静态库,它有一个未定义的符号__aeabi_f2lz。我希望链接时可以解析这个符号。

另外,如果我在我的库中添加这样的代码:

volatile float fixme_float = 1.3f;
volatile int64_t fixme_int64 = static_cast<int64_t>(fixme_float);

链接错误消失。我认为上面的代码强制使用__aeabi_f2lz并神秘地解决了链接错误。我怀疑这只是一个链接订单问题。

有谁知道哪个库包含__aeabi_f2lz的实现?我想在链接静态lib之后强制依赖于库,看看我是否可以解决问题。或者我是否正确地声称这是因为链接顺序?我正在使用Android NDK的独立手臂工具链。

感谢您的帮助!

更新[1]: 构建命令是:

third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,--fatal-warnings \
    -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed \
    --gcc-toolchain=third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 \
    -fuse-ld=gold -Wl,--icf=all -Wl,--no-undefined -Wl,--exclude-libs=libgcc.a \
    -Wl,--exclude-libs=libc++_static.a -Wl,--exclude-libs=libvpx_assembly_arm.a \
    --target=arm-linux-androideabi -Werror -nostdlib \
    --sysroot=.third_party/android_tools/ndk/platforms/android-16/arch-arm  \
    -Wl,-wrap,calloc -Wl,-wrap,free -Wl,-wrap,malloc -Wl,-wrap,memalign \
    -Wl,-wrap,posix_memalign -Wl,-wrap,pvalloc -Wl,-wrap,realloc -Wl,-wrap,valloc \
    -Lthird_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a \
    -o "./lib.unstripped/libexample.so" -Wl,-soname="libexample.so"

1 个答案:

答案 0 :(得分:0)

它在libgcc中:

from pyspark.sql.functions import date_format

df.withColumn("date", date_format("date", "yyyy-MM-dd"))

默认情况下,这是链接的。您的链接订单可能有问题。你能否更新你的答案,包括你用来链接你的图书馆的命令?

相关问题