共享库文本段不可共享

Vek*_*r88 11 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....
Run Code Online (Sandbox Code Playgroud)

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

aus*_*len 7

更新:

从Android NDK r11你可以使用

LOCAL_LDLIBS += -Wl,--no-warn-shared-textrel
Run Code Online (Sandbox Code Playgroud)

你也可以使用

LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true
Run Code Online (Sandbox Code Playgroud)

上一个答案:

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

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

LOCAL_LDFLAGS := --no-warn-shared-textrel
Run Code Online (Sandbox Code Playgroud)

  • 将此"LOCAL_DISABLE_FATAL_LINKER_WARNINGS:= true"添加到Android.mk比"LOCAL_LDFLAGS"解决方案更好. (6认同)
  • 这不回答这个问题:这是什么意思? (4认同)