使用 Android NDK 使用 -fsigned-char 进行构建安全吗?

发布于 2024-12-04 21:42:35 字数 934 浏览 1 评论 0原文

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

我尝试显式使用 signed char 类型,但当涉及字符串常量/库函数时,它会生成太多警告符号性不同,所以我正在构建我的代码与-fsigned-char

我现在正在尝试预测有关 Android ARM 使用 -fsigned-char 时的 ABI 和 API,但我还没有发现任何问题。

ARM 的过程调用标准建筑学 ABI (AAPCS)、7.1.1 算术类型和 ARM 架构的 C 库 ABI,5.6 inttypes.h,char 据说是未签名

您是否知道在 Android NDK 中启用 -fsigned-char 时使用 C 库(Android 上可用的其他库)时是否会出现一些问题?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

却一份温柔 2024-12-11 21:42:35

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

在 Android.mk 中设置 LOCAL_CFLAGS := -fsigned-char 后,我的程序可以运行了!目前我没有发现副作用。谢谢。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文