使用Android NDK的-fsigned-char可以安全吗? [英] Is it safe to build with -fsigned-char with Android NDK?

查看:215
本文介绍了使用Android NDK的-fsigned-char可以安全吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了与其他平台保持一致,我需要在我正在处理的一些本机代码中使用 signed char 。但是默认情况下,Android NDK char type is unsigned



我试图明确地使用 signed char type,但是它产生太多的警告在签名时有区别当字符串常量/库函数涉及到,所以我正在寻找使用 -fsigned-char 构建我的代码。



m现在试图预测Android ARM的问题 ABI和API ,当 -fsigned-char 被使用,但我找不到任何问题。



ARM体系结构的程序调用标准
ABI(AAPCS)
,7.1.1算术类型和 C Li ARM架构的brary ABI ,5.6 inttypes.h, char 据说是 unsigned 。 / p>

当您在 -fsigned-char 在Android NDK中启用?

解决方案

我今晚也遇到这个问题。 char 在x86上被视为签名,但更改为 unsigned 在Android设备上运行时。这使得我的JNI库无法正常工作。



在Android中设置 LOCAL_CFLAGS:= -fsigned-char 我的程序工作!目前我没有发现副作用。谢谢。


For consistency with other platforms, I need to use signed char in some native code I'm working on. But by default on Android NDK char type is unsigned.

I have tried to explicitly use signed char type but it generates too many warnings differ in signedness when string constant/library functions are involved, so I'm looking to build my code with -fsigned-char.

I'm now trying to anticipate problems regarding Android ARM ABI and API when -fsigned-char is used, but I can't find any problem yet.

In Procedure Call Standard for the ARM Architecture ABI (AAPCS), 7.1.1 Arithmetic Types, and C Library ABI for the ARM Architecture , 5.6 inttypes.h, char is said to be unsigned.

Did you know if there Will be some trouble when using C library (others libraries available on Android) when -fsigned-char is enabled in Android NDK?

解决方案

I have also encountered this issue tonight. char is treat as signed on x86, but changed to unsigned when run on Android device. This make my JNI libs don't work properly.

After setting LOCAL_CFLAGS := -fsigned-char in Android.mk, my program works! Currently I found no side effect. Thanks.

这篇关于使用Android NDK的-fsigned-char可以安全吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆