Intereting Posts
Интегрируя org.apache.poi и пакет javax.xml.stream. * (Stax-api) в android – как установить аргумент -core-library в Android Studio? Android 5.0 / Lollipop: принудительное повторное сканирование / system / priv-app ListView с OnItemClickListener android Проблема с Android NDK r4 san-angeles Есть ли реальное решение для отладки приложений cordova Android: обнаружение, если пользователь коснется и перетащит из области кнопки? Используйте URI-конструктор в Android или создайте URL-адрес с переменными Как поймать событие click на кнопке? OnCreateOptionsMenu вызывается слишком много раз в ActionBar, используя вкладки «Неподдерживаемая зависимость шаблона: обновите плагин Android Eclipse» с помощью SDK Tools v22 Как изменяется доступ к хранилищу на Android 6? Начало работы с Android-разработкой с помощью Honeycomb Обновите изображения на FragmentStatePagerAdapter при возобновлении активности Android-потоки и блокировка базы данных Объявление атрибутов стиля в Android

Какой компилятор использует Android NDK?

Я пишу код ARM NEON для Android-приложения, и я боролся с некоторыми флагами компилятора, которые не распознаются. Позже я понял, что поддержка этих флагов была добавлена ​​совсем недавно и моя версия GCC старше. Я делаю все это в Windows и ограничусь тем, что могут предложить Cygwin. Вот мой вопрос: прежде чем я пойду и попытаюсь построить GCC 4.6.0 на своей машине под Windows и сделаю Cygwin таким, как это будет, это сработает для меня или NDK использует собственную версию GCC, и мое обновление не повлияет на нее ? Если да, возможно ли это использовать другой компилятор?

Solutions Collecting From Web of "Какой компилятор использует Android NDK?"

Сам NDK вызывает индивидуальный кросс-компилятор, построенный на компиляторе arm-eabi-gcc . Есть примеры того, как люди создают пользовательские инструментальные цепочки с использованием стандартных реализаций GCC с поддержкой наборов инструкций ARM, но это выход из моей лиги. Большинство материалов, которые я читал в прошлом, всегда обсуждались с помощью инструментальной цепочки, включенной в NDK, для компиляции собственного кода.

Следствие. Большинство людей, которые жаловались и вынуждены были создать свою собственную инструментальную цепочку, были людьми, которые были расстроены (предположительно) вспомогательной поддержкой C ++ для компилятора NDK toolchain. Я не могу говорить об этом, потому что некоторые из статей были старше, и Android так быстро меняется. Это также не было мнением, которое, кажется, появляется слишком часто.

Что касается NDK r8d, его можно изменить двумя способами (см. Andriod ndk ):

  • Для ndk-build экспортируйте переменную NDK_TOOLCHAIN_VERSION = 4.7 или добавьте ее в Application.mk.
  • Для автономных сборок добавьте параметр –toolchain = для make-standalone-toolchain.sh --toolchain=arm-linux-androideabi-4.7

Компилятор по умолчанию установлен в ndk / build / core / setup-toolchain.mk (см. NDK_TOOLCHAIN ​​и NDK_TOOLCHAIN_VERSION)

GCC устарел в пользу clang с NDK 11 (март 2016 года)

Упоминается в официальной истории изменений: https://developer.android.com/ndk/downloads/revision_history.html

Как переключаться между компиляторами задается по адресу:

  • Как переключиться между gcc и clang в Android NDK Revision 11?
  • Последние возможности C ++ 11 с Android NDK

И вы можете легко проверить это:

 enum CONSTEXPR {N = 256}; char s[N]; #ifdef __clang__ snprintf(s, N, "%s", "clang" __clang_version__); #else # ifdef __GNUC__ snprintf(s, N, "%s %d.%d.%d", "gcc", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); # endif #endif 

Затем просто запишите s или верните его в TextView .