Включить поддержку C++11 на Android



Как интегрировать C++11 В Android?

591   4  

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

последние gradle-experimental-plugin 0.8.0-alpha4 добавить в свой приложения/строить.gradle:

model {
    android {
        ndk {
            moduleName "native"
            CFlags.add("-std=c11") // Enable C11 support
            ldLibs.add("log")
        }
    }
}

Comments

    Ничего не найдено.