Używam Androida NDK r8d i Zaćmienie Juno. Próbuję skompilować kod w języku C++, który używa elementów C++ 11, takich jak mutex
, lock_guard
, shared_ptr
itp. W natywnym projekcie android w środowisku Zaćmienie.Jak skompilować kod C++ 11 z Androidem ndk i eclipse?
otrzymuję błędy takie jak:
"error: 'shared_ptr' is not a member of 'std'"
"fatal error: mutex: No such file or directory"
natknąłem się na podobne pytanie here. Wydaje się, że działa dla nich, ale wyjaśnienie nie jest kompletne, więc nie mogę go dla mnie uruchomić.
Dodałem "NDK_TOOLCHAIN_VERSION=4.7"
do pliku Application.mk
i "LOCAL_CFLAGS += -std=c++11"
do Android.mk
. Nadal jednak się nie kompiluje.
W linku powyżej jest napisane:
"Be sure that the standard library include path (like /android-ndk-r8d/sources/cxx-stl/gnu-libstdc++/4.7/include) is in the target settings."
Jak i gdzie mogę je wstawić?
Otrzymuję również błędy w IDE Eclipse (na źródło, przed kompilacją). Wiem, że powinienem zdefiniować "__GXX_EXPERIMENTAL_CXX0X__"
, aby je rozwiązać, ale po prostu nie wiem, gdzie to umieścić.
Tak więc, jeśli ktoś mógłby zamieścić odpowiedź z pełnym wyjaśnieniem, jak skompilować i sprawić, że eclipse działa z C++ 11, byłoby świetnie.
Przeczytaj dokument NDK, jest to niemożliwe. – Geoffroy
http://stackoverflow.com/questions/14532057/smart-pointers-not-working-with-android-ndk-r8 wydaje się, że udało im się to – DeathlessHorsie
, którego kompilatora używasz do C++? – naxchange