2011-09-14 6 views
6

Aby zachować spójność z innymi platformami, muszę używać signed char w jakimś natywnym kodzie, nad którym pracuję. Ale domyślnie na Androidzie NDK char typ to unsigned.Czy można bezpiecznie budować z opcją -fsigned-char z Androidem NDK?

Próbowałem jawnie użyć signed char typ ale to generuje zbyt wiele ostrzeżeń differ in signedness gdy zaangażowane są strunowe funkcje stały/Library, więc szukam zbudować mój kod z -fsigned-char.

Próbuję obecnie przewidywać problemy dotyczące Androida ARM ABI and API przy użyciu -fsigned-char, ale nie mogę znaleźć żadnego problemu.

W Procedure Call Standard for the ARM Architecture ABI (AAPCS), 7.1.1 Rodzaje arytmetyczne i C Library ABI for the ARM Architecture, 5,6 inttypes.h, char mówi się unsigned.

Czy wiesz, czy wystąpi problem z korzystaniem z biblioteki C (inne biblioteki dostępne w systemie Android) po włączeniu -fsigned-char w systemie Android NDK?

Odpowiedz

4

Spotkałem się również z tym problemem dziś wieczorem. char jest traktowany jako signed na x86, ale zmieniono na unsigned po uruchomieniu na urządzeniu z systemem Android. To sprawia, że ​​moje biblioteki JNI nie działają poprawnie.

Po ustawieniu LOCAL_CFLAGS := -fsigned-char w Android.mk, mój program działa! Obecnie nie znalazłem żadnego efektu ubocznego. Dzięki.

Powiązane problemy