【问题标题】:PRIx64 format macro not defined when compiling for armeabi-v7a为 armeabi-v7a 编译时未定义 PRIx64 格式宏
【发布时间】:2018-08-15 00:14:38
【问题描述】:

要打印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

【问题讨论】:

    标签: android android-ndk printf armv7


    【解决方案1】:

    使用PRIx64格式时需要定义宏:

    -D__STDC_FORMAT_MACROS

    【讨论】:

      【解决方案2】:

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

      LOCAL_CPPFLAGS := -D__STDC_FORMAT_MACROS
      

      【讨论】:

        猜你喜欢
        • 2021-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        • 2012-08-26
        • 2019-11-25
        • 2016-11-23
        • 2016-07-27
        相关资源
        最近更新 更多