NDK 11链接器将警告视为错误

Jor*_*ndo 9 android android-ndk

我正在尝试用android ndk-11构建一个库,我收到一个链接器错误:

arm-linux-androideabi/bin/ld: error: treating warnings as errors

如果我使用ndk-r10e,我不会收到此错误.

运行ndk-build,V = 1,我看到它-Wl,--fatal-warnings正被传递给链接器.我已经尝试添加LOCAL_LDFLAGS:=-Wl,--no-fatal-warnings到我的Android.mk文件,我可以在链接器输出中看到它实际上是传递给链接器,但它之前 被传递-Wl,--fatal-warnings,因此它被忽略.

警告来自第三方库,所以我不能只是重新编译它来修复警告(它们都是'重定位是指丢弃部分'警告).我一直看到这些警告,从来没有遇到任何问题.

有谁知道如何告诉ndk-11链接器不要将警告视为错误?

Jor*_*ndo 18

我在写这篇文章时想到了这一点,所以我想我会分享解决方案.

<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
Run Code Online (Sandbox Code Playgroud)

添加LOCAL_DISABLE_FATAL_LINKER_WARNINGS=true到我的.mk文件后,错误消失了.

很多在这些文件中定义其他的事情,所以如果你越来越怪异生成错误突然,走在那里看看,看看新的东西已启用.

  • 就这样吧。你的提示救了我。谢谢。+1 (2认同)