【问题标题】:Error when using static libraries in Android NDK在 Android NDK 中使用静态库时出错
【发布时间】:2011-04-14 07:54:21
【问题描述】:

尝试使用静态库时出现此错误:

/home/user/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: 
skipping incompatible /home/user/android-ndk-r5b/apps/HelloNDK/obj/local/armeabi/libtest.a when searching for -ltest

可能是什么问题?提前致谢

更新: 为了编译我已经这样做了:


PREBUILT=/home/user/android-ndk/build/prebuilt/linux-x86/arm-eabi-4.4.0
PLATFORM=/home/user/android-ndk/build/platforms/android-3/arch-arm
INSTALL=/home/user/test-14.3.2/com5

./configure --build=arm \
    --prefix=$INSTALL \

  --with-flac=dyn \

--enable-static \



    CC=$PREBUILT/bin/arm-eabi-gcc \
    CFLAGS="-fPIC -DANDROID" \
    LDFLAGS="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"

怎么了?

【问题讨论】:

    标签: android c static-libraries cross-compiling android-ndk


    【解决方案1】:

    您从链接器得到提示:库似乎已找到,但由于不正确而被跳过。

    您确定使用相同的编译器编译您的库吗?如果它是为另一个平台/使用另一个编译器编译的,您将遇到 ABI 问题,并且链接器将丢弃该库,这似乎是这样做的。

    【讨论】:

    • 我不确定。我在 Linux 下使用 gcc 编译(使用 - build = arm)并进行了 make 和 make install。你怎么办?如果是这样,那可能是我的错吗? (收到文件后.a - 扔到Android项目的一个文件夹中,obj)
    • 你也应该使用 ndk 来编译你的库,使用带有 -build=arm 的标准 gcc 是不够的(例如,rtti)
    • 在这个脚本之后,我做了 make 和 make install。真的吗?可能是什么问题?
    • 那又怎样?回答?提前致谢
    • 这里没有线索,帮不上忙
    猜你喜欢
    • 2013-02-06
    • 2011-09-01
    • 1970-01-01
    • 2023-03-23
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多