Android 共享库文本段不可共享

Android 共享库文本段不可共享,android,shared-libraries,ld,Android,Shared Libraries,Ld,我正在尝试将硬件视频加速添加到设备的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

我正在尝试将硬件视频加速添加到设备的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....
这是什么意思?我应该使用限制较少的标志进行编译,还是更糟糕的原因导致了它?

更新:

从Android NDK r11,您可以使用

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel
你也可以使用

LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true
先前的答案:

这是工具链中最近的一项更改,它将此警告视为错误

一种解决方法是将
--no warn shared textrel
添加到
LOCAL\u LDFLAGS
以禁用将警告视为错误。你可以在你的
Android.mk
中这样做

LOCAL_LDFLAGS := --no-warn-shared-textrel

Android NDK r11的解决方案:

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel
LOCAL\u LDLIBS
在选项链中的应用晚于
LOCAL\u LDFLAGS
,因此会覆盖默认值。

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

将此行添加到您的android.mk


LOCAL\u CPPFLAGS+=-w-frti

将此
LOCAL\u DISABLE\u FATAL\u LINKER\u WARNINGS:=true
添加到Android.mk比
LOCAL\u LDFLAGS
解决方案效果更好。从r11开始,
build/core/build binary.mk
将始终添加
LOCAL\u LDFLAGS+=-Wl,--无论我以前设置了什么
LOCAL\LDFLAGS
。如何避免这种情况?这并没有回答这个问题:这意味着什么?这确实提供了一个答案,比Android NDK新版本的公认答案更有效。这并没有回答这个问题:这意味着什么?