Opcje kompilatora systemu AndroidStudio C ++

eyal 09/05/2017. 2 answers, 83 views
c++ android-studio android-studio android-ndk android-ndk jni

Podczas próby uruchomienia mojego kodu, który zawiera pliki C ++, pojawia się następujący błąd:

Error:(32, 2) error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options. 

Jak można go rozwiązać? To mój pierwszy projekt związany z plikami C ++.

4 Comments
Asu 11/06/2016
Musisz włączyć opcję "the -std = c ++ 11 lub -std = gnu ++ 11".
1 Christian Hackl 11/06/2016
Nauka C ++ na Androidzie to bardzo zły pomysł. W każdym razie, musisz jakoś przekazać IDE odpowiednie flagi do kompilatora, aby użyć funkcji C ++ 11 i / lub użyć kompilatora, dla którego C ++ 11 nie jest już eksperymentalny. Słyszałem, że jest jakiś przycisk "Dostosuj obsługę C ++" lub menu rozwijane gdzieś w interfejsie użytkownika, które może to dla ciebie zrobić.
eyal 11/06/2016
Wiem, że muszę użyć -std = c ++ 11 lub -std = gnu ++ 11, ale jak mogę to skonfigurować?
Michael 11/06/2016
Istnieje wiele sposobów budowania natywnego kodu z Android Studio i nie widzę żadnej wzmianki o tym, którego używasz. Jeśli masz plik Android.mk, możesz dodać dowolną flagę do LOCAL_CPPFLAGS . W przeciwnym razie prawdopodobnie będziesz musiał użyć jakiejś właściwości cppFlags w pliku build.gradle.

2 Answers


eyal 11/06/2016.

Przebudowałem swój projekt i używam C ++ 11 zamiast domyślnej ToolChain na stronie Customize C ++ Support. Myślę, że jest to brudny sposób na rozwiązanie tego problemu.

1 comments
Alex Cohn 07/30/2017
Być może 'ToolChain Default' nie jest idealnym sposobem przedstawienia jednego z wyborów, ale jest to czysty sposób radzenia sobie z tym problemem. C ++ ma różne, niekoniecznie zgodne "tryby", np. C ++ 11 i C ++ 13, a Ty jesteś odpowiedzialny za wybór odpowiedniego dialektu.

eyal 11/07/2016.

W gradacji kompilacji aplikacji w Androidzie -> defaultConfig możesz dodać / zmienić poniższe

externalNativeBuild {
        cmake {
            cppFlags "-std=c++11"
        }
    } 

Related questions

Hot questions

Language

Popular Tags