Безопасно ли собирать с -fsigned-char с Android NDK? - PullRequest
8 голосов
/ 14 сентября 2011

Для совместимости с другими платформами мне нужно использовать signed char в каком-то нативном коде, над которым я работаю.Но по умолчанию в Android тип NDK char равен unsigned.

Я пытался явно использовать тип signed char, но он генерирует слишком много предупреждений differ in signedness, когда задействованы строковая константа / библиотечные функции, поэтомуЯ пытаюсь построить свой код с -fsigned-char.

. Сейчас я пытаюсь предвидеть проблемы, связанные с Android ARM ABI и API , когда используется -fsigned-char, но я не могу 'пока не найдено никаких проблем.

В Стандарт вызова процедур для ABM архитектуры ARM (AAPCS) , 7.1.1 Арифметические типы и ABI библиотеки C для архитектуры ARM , 5.6 inttypes.h, char называется unsigned.

Знаете ли вы, возникнут ли какие-либо проблемы при использовании библиотеки C (другие библиотеки доступны на Android), когда включен -fsigned-charв Android NDK?

1 Ответ

3 голосов
/ 01 марта 2012

Я также столкнулся с этой проблемой сегодня вечером. char трактуется как signed на x86, но изменяется на unsigned при запуске на устройстве Android. Это заставляет мои JNI-библиотеки работать неправильно.

После установки LOCAL_CFLAGS := -fsigned-char в Android.mk моя программа работает! В настоящее время я не нашел побочных эффектов. Спасибо.

...