Baute android mit clang statt gcc? Und das clang stl lib statt gnustl lib?

Ich versuche, eine Android ndk App mit Clang anstelle von gcc zu bauen, denn ich habe das in der Android.mk ausprobiert

NDK_TOOLCHAIN_VERSION := clang LOCAL_CLANG :=true LOCAL_LDLIBS := -lc++_static LOCAL_CFLAGS := -std=c++11 

Und in der Anwendung.mk

  • Com.google.gson.JsonSyntaxException beim Versuchen, Datum / Uhrzeit in json zu analysieren
  • Android Spinner Reveal Animation Material Design
  • Sollte ich OAuth-Konsumentengeheimnis durch Android-App gespeicherte?
  • Wie kann man überprüfen, ob eine Absicht von einer Aktivität behandelt werden kann?
  • Was ist die Designlogik hinter Fragmenten als statische innere Klassen vs eigenständige öffentliche Klassen?
  • Handle Screen Rotation ohne Datenverlust - Android
  •  APP_PLATFORM := android-9 APP_STL := libc++_static APP_CPPFLAGS := -fexceptions -frtti APP_ABI := armeabi-v7a 

    Aber es gibt mir immer Link-Fehler mit der std-Bibliothek.

    Jede Hilfe wird geschätzt!

  • AlertDialog setOnDismissListener funktioniert nicht
  • Wie beschränken Sie AutoCompleteTextView Dropdown-Dismiss?
  • OpenCV Library Fehler mit AndroidStudio
  • SimpleDateFormat Zeitzonen-Bug auf Android
  • Eclipse Bug mit neun Patch-Dateien?
  • Fortschrittsleiste in der Benachrichtigungsleiste beim Hochladen von Bildern?
  • 2 Solutions collect form web for “Baute android mit clang statt gcc? Und das clang stl lib statt gnustl lib?”

    Es gibt mehrere Fehler in deinen * .mk-Dateien:

    libc++_static ist kein richtiger Wert für APP_STL, es sollte c++_static hier sein.

    NDK_TOOLCHAIN_VERSION hat keine Wirkung, wenn in Android.mk gesetzt, sollte es in Application.mk gesetzt werden

    LOCAL_CLANG ist eine Variable, die in Systemmodulen von AOSP verwendet wird, nicht bei Verwendung des NDK.

    Da Sie APP_STL als c++_static , wird die NDK Toolchain korrekt dem Linker mitteilen, welche Lib zu verwenden ist, sollten Sie LOCAL_LDLIBS := -lc++_static nicht hinzufügen LOCAL_LDLIBS := -lc++_static .

    Auch hast du APP_ABI nur auf armeabi-v7a gesetzt, ist es absichtlich? Android läuft auch auf anderen Architekturen und man bekommt eine bessere Leistung auf diese, wenn Sie auch Ihre Bibliotheken entsprechend kompilieren. Sie können entweder APP_ABI auf all oder auf eine Liste von Architekturen setzen armeabi-v7a x86

    Zusammenfassend:

    Android.mk

     LOCAL_CFLAGS := -std=c++11 

    Application.mk

     NDK_TOOLCHAIN_VERSION := clang APP_PLATFORM := android-9 APP_STL := c++_static APP_CPPFLAGS := -fexceptions -frtti APP_ABI := all 

    Wenn Sie fortfahren, einige Probleme zu haben, die Ihren Code kompilieren, zeigen Sie bitte die genauen Störungen, die Sie erhalten.

    Die Gebäudeeinstellungen sind korrekt, meistens geschieht dies, weil du mit der Bibliothek verknüpft bist, die gcc anstelle von clang benutzt. Überprüfen Sie, ob alle Ihre verknüpfte Bibliothek mit clang!

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.