共享库文本段不可共享

时间:2013-11-14 19:25:01

标签: android shared-libraries ld

我正在尝试将HW视频加速添加到我的设备的cm10.2端口。我没有错误,但下面的那个,然后make停止工作,显然没有任何错误。

/home/vektor/CM102/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: warning: shared library text segment is not shareable
/home/vektor/CM102/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: error: treating warnings as errors
collect2: error: ld returned 1 exit status
make: *** [/home/vektor/CM102/out/target/product/s7300b/obj/SHARED_LIBRARIES/libamplayer_intermediates/LINKED/libamplayer.so] Error 1
make: *** Waiting for unfinished jobs....

这是什么意思?我应该使用限制较少的标志进行编译还是更糟糕的原因?

3 个答案:

答案 0 :(得分:7)

<强> 更新

从Android NDK r11

可以使用

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel

您也可以使用

LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true

上一个回答:

这是最近工具链的变化,它将此警告视为错误。

一种解决方法是将--no-warn-shared-textrel添加到LOCAL_LDFLAGS以禁用将警告视为错误。你可以在Android.mk喜欢的

中做到这一点
LOCAL_LDFLAGS := --no-warn-shared-textrel

答案 1 :(得分:4)

Android NDK r11的解决方法:

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel

LOCAL_LDLIBS稍后会应用于选项链而不是LOCAL_LDFLAGS,因此会覆盖默认值。

答案 2 :(得分:0)

对于asop项目(例如:aosp / external / myproject /)

将此行添加到您的android.mk

LOCAL_CPPFLAGS += -w -frtti