4 ответов:
похоже, что основной ответ здесь включает экспериментальную поддержку C++11, а C++11 больше не является экспериментальным.
Если вы используете поддержку командной строки NDK (я использую IDEA community edition 13 для Java-материалов), то это то, что я должен был положить в мой
jni/Application.mkчтобы получить поддержку C++11 С API 19 (на OSX ML):NDK_TOOLCHAIN_VERSION := 4.8 # APP_STL := stlport_shared --> does not seem to contain C++11 features APP_STL := gnustl_shared # Enable c++11 extentions in source code APP_CPPFLAGS += -std=c++11
прежде всего, вам нужно будет убедиться, что ваша цепочка инструментов "Cross GCC". Хотя это было по умолчанию на моем Linux, это не было на моем MacOSX Lion.
для этого перейдите в Свойства Проекта > Сборка C / C++ > Редактор Цепочек Инструментов. "текущий набор инструментов " должно быть установлено в "крест GCC". Возможно, вам придется снять флажок" отображать только совместимые цепочки инструментов".
затем добавьте опцию LOCAL_CFLAGS в Андроид.МК:
LOCAL_CFLAGS := -std=gnu++11теперь нам нужно сообщить Eclipse о том, где найти соответствующие новые символы (например, "std::unordered_map"). Перейти к щелкните правой кнопкой мыши на "jni" > свойства > C / C++ общие - > пути и символы - > символы - > GNU C++, и добавить следующий символ (нажав кнопку " Добавить..."):
Name: __GXX_EXPERIMENTAL_CXX0X__ Value:(т. е. пусть" значение " пустое)
последние gradle-experimental-plugin 0.8.0-alpha4 добавить в свой приложения/строить.gradle:
model { android { ndk { moduleName "native" CFlags.add("-std=c11") // Enable C11 support ldLibs.add("log") } } }
Comments