2013-03-19 31 views
9

İlk Android projemi C++ 11 desteği ile ndk r8d kullanarak kurmaya çalışıyorum. Bazı c + 11 mekanizmaları iyi çalışır (yani lambada ifadeler), ancak yeni dize işlemlerinden birini kullanmak için 'u denediğimde, derleme başarısız olur (hata: 'stol', 'std' öğesinin üyesi değildir). İşte benim proje ayarları şunlardır:std :: string işlemleri (yani stol, stoi) bulunamadı NDK8d

Application.mk

APP_MODULES := MyLib 

APP_CPPFLAGS := -std=gnu++0x 
APP_CPPFLAGS += -frtti 
APP_CPPFLAGS += -fexceptions 
APP_CPPFLAGS += -DDEBUG 

APP_ABI := armeabi-v7a 
APP_PLATFORM:=android-14      

APP_STL := gnustl_static 
APP_GNUSTL_CPP_FEATURES := rtti exceptions 

NDK_TOOLCHAIN_VERSION=4.7 

Are bu fonksiyonlar aslında çalışmıyor?

+0

tr1, tr2 veya ext gibi farklı adlarda arama yapmayı denediniz mi? – mgiza

+0

std :: tr1, std :: tr2 ve std :: ext ad alanlarını kullanmaya çalışırsam, bunların bildirilmediğini bildirdim. – Hellhound

cevap

6

another thread'da yanıtlanıyor gibi görünüyor.

APP_STL: Bu fonksiyonun GNU STL uygulamasında

The reason why you cannot use the functions is quite deep rooted, and unfortunately currently unsolvable.

nasılsa sözlerine ekleyen Android

tarafından

The root cause seems to be that the C99 functionality usage has been disabled in the GNU stdlibc++ on the armeabi-v7a platform due to the fact the the Bionic libc does not support complex math (the standard C library on Android is Bionic).

0

kullanılmaz, c99 (_GLIBCXX_USE_C99 makro) dayanıyor = C++ _ statik

Application.mk için

bu sorunu benim için (gcc 4.8.4 kullanarak) düzeltildi. Daniel Tavares ile

çözümü, bu Google Groups post dan.

+0

C++ _ statik hala deneysel: https://developer.android.com/ndk/guides/cpp-support.html#cs – manimaul

İlgili konular