我正在尝试用
android ndk-11构建一个库,我收到一个链接器错误:
arm-linux-androideabi / bin / ld:错误:将警告视为错误
如果我使用ndk-r10e,我不会收到此错误.
使用V = 1运行ndk-build,我看到-Wl,– 致命警告正被传递给链接器.我已经尝试将LOCAL_LDFLAGS:= – Wl,– 无致命警告添加到我的Android.mk文件中,我可以在链接器输出中看到它实际上已传递给链接器,但之前传递了 – Wl,– 致命警告,所以它被忽略了.
警告来自第三方库,所以我不能只是重新编译它来修复警告(它们都是’重定位是指丢弃部分’警告).我一直看到这些警告,从来没有遇到任何问题.
有谁知道如何告诉ndk-11链接器不要将警告视为错误?
解决方法
我在写这篇文章时想到了这一点,所以我想我会分享解决方案.
< 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文件中会导致错误消失.
这些文件中定义了许多其他内容,因此如果您突然发现奇怪的构建错误,请查看其中是否已启用新内容.