2016-03-11 7 views
7

Ich versuche, eine Bibliothek mit Android NDK-11 zu bauen, und ich bin ein Linker-Fehler bekommen:NDK 11 Linker wird die Behandlung von Warnungen als Fehler

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

ich nicht diesen Fehler machen, wenn ich Verwenden Sie ndk-r10e.

Laufen ndk-build mit V = 1, sehe ich, dass -Wl,--fatal-warnings an den Linker übergeben wird. Ich habe versucht, LOCAL_LDFLAGS:=-Wl,--no-fatal-warnings zu meiner Android.mk Datei hinzuzufügen, und ich kann in der Linker-Ausgabe sehen, dass es tatsächlich an den Linker übergeben wird, aber es vor-Wl,--fatal-warnings übergeben wird, so wird es ignoriert.

Die Warnungen kommen von einer 3rd-Party-Bibliothek, so dass ich sie nicht einfach neu kompilieren kann, um die Warnungen zu beheben (sie sind alle "Umzug bezieht sich auf verworfene Abschnitt" Warnungen). Ich habe diese Warnungen immer gesehen und hatte nie Probleme.

Weiß jemand, wie man dem ndk-11 Linker nicht sagt, um Warnungen als Fehler zu behandeln?

Antwort

12

Ich habe das herausgefunden, als ich es geschrieben habe, also dachte ich, ich würde die Lösung teilen.

<NDK_ROOT>/build/core enthält eine Reihe von .mk-Dateien, die beim Ausführen von ndk-build verwendet werden. Innerhalb build-binary.mk gibt es ein paar neue (undokumentierte) Prüfungen für Variablen, die Sie definieren können. Für diesen besondere einen gibt es den folgenden Block:

# 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 meine .mk Datei hinzufügen aus den Fehlern weg.

Es gibt viele von anderen Dingen in diesen Dateien definiert, so wenn Sie plötzlich seltsame Build-Fehler bekommen, werfen Sie einen Blick hinein, um zu sehen, ob etwas Neues aktiviert wurde.

Verwandte Themen