我正在尝试用
android ndk-11构建一个库,我收到一个链接器错误:
arm-linux-androideabi / bin / ld:错误:将警告视为错误
如果我使用ndk-r10e,我不会收到此错误.
使用V = 1运行ndk-build,我看到-Wl,– 致命警告正被传递给链接器.我已经尝试将LOCAL_LDFLAGS:= – Wl,– 无致命警告添加到我的Android.mk文件中,我可以在链接器输出中看到它实际上已传递给链接器,但之前传递了 – Wl,– 致命警告,所以它被忽略了.
警告来自第三方库,所以我不能只是重新编译它来修复警告(它们都是’重定位是指丢弃部分’警告).我一直看到这些警告,从来没有遇到任何问题.
解决方法
我在写这篇文章时想到了这一点,所以我想我会分享解决方案.
< NDK_ROOT> / build / core有一堆运行ndk-build时使用的.mk文件.在build-binary.mk中,对可以定义的变量进行了一些新的(未记录的)检查.对于这个特定的,有以下块:
# We enable fatal linker warnings by default. # If LOCAL_DISABLE_FATAL_LINKER_WARNINGS is true,we don't enable this check. ifneq ($(LOCAL_DISABLE_FATAL_LINKER_WARNINGS),true) LOCAL_LDFLAGS += -Wl,--fatal-warnings endif
将LOCAL_DISABLE_FATAL_LINKER_WARNINGS = true添加到我的.mk文件中会导致错误消失.