问题 共享库文本段不可共享


我正在尝试将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....

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


11491
2017-11-14 19:25


起源



答案:


更新:

从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

7
2017-12-18 16:44



添加这个 LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true Android.mk的效果比 LOCAL_LDFLAGS 解。 - Alexey Yakovenko
自r11以来 build/core/build-binary.mk 将永远添加 LOCAL_LDFLAGS += -Wl,--warn-shared-textrel 无论如何,在链接命令的末尾 LOCAL_LDFLAGS 我以前设定过。怎么避免这个? - jayatubi
@Alexey Yakovenko:很棒!谢谢 - yeahman
这不回答这个问题:这是什么意思? - Karu


答案:


更新:

从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

7
2017-12-18 16:44



添加这个 LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true Android.mk的效果比 LOCAL_LDFLAGS 解。 - Alexey Yakovenko
自r11以来 build/core/build-binary.mk 将永远添加 LOCAL_LDFLAGS += -Wl,--warn-shared-textrel 无论如何,在链接命令的末尾 LOCAL_LDFLAGS 我以前设定过。怎么避免这个? - jayatubi
@Alexey Yakovenko:很棒!谢谢 - yeahman
这不回答这个问题:这是什么意思? - Karu


Android NDK r11的解决方法:

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

LOCAL_LDLIBS 稍后在选项链中应用 LOCAL_LDFLAGS,并因此覆盖默认值。


4
2018-05-15 05:55



这确实提供了一个答案,它比新版Android NDK的接受答案更好。 - pelya
这不回答这个问题:这是什么意思? - Karu


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

将此行添加到您的android.mk

LOCAL_CPPFLAGS += -w -frtti


0
2017-09-27 08:19