为 armeabi-v7a 编译时未定义 PRIx64 格式宏

PRIx64 format macro not defined when compiling for armeabi-v7a

要打印 uint64_t 值,我正在使用 PRIx64 宏。 这适用于我尝试过的所有平台(iOS、Windows、Linux、arm64 Android。)

但是在 32 位 ARM Android 上,宏似乎不可用:

编译时:

LOGI("Cannot find %" PRIx64 " in wld.", item);

我得到:

actors_pathing.cpp:234:25: error: expected ')' LOGI("Cannot find %" PRIx64 " in wld.", item); ^

arm64-v8a 工作正常,但 armeabi-v7a 不工作。 当然,32 位的 arm 代码应该可以打印出 64 位的整数?

使用:NDK r13b(最新)

在Application.mk中: APP_ABI := armeabi-v7a

使用PRIx64格式需要定义一个宏:

-D__STDC_FORMAT_MACROS

将此行添加到您的 Android.mk:

LOCAL_CPPFLAGS := -D__STDC_FORMAT_MACROS