android - Android NDK 部分不支持计时

标签 android c++ c++11 android-ndk c++-chrono

我正在尝试将 chrono 与 Android NDK 结合使用。到目前为止我取得了一些成功,但不支持某些功能。 我在我的 Android.mk 中添加了这一行:

LOCAL_CPPFLAGS  := -std=c++11

我的 Application.mk 文件:

APP_ABI := armeabi-v7a
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PLATFORM := android-9

第一个问题是没有定义 steady_clock。这一行:

std::chrono::steady_clock::time_point time = std::chrono::steady_clock::now();

生成此编译错误:

error: 'std::chrono::steady_clock' has not been declared

我发现我可以改用 monotonic_clock 并且它有效,但这种类型应该已被 steady_clock 取代。

第二个问题是没有为任何类型定义属性 is_steady:

LOGD("high_resolution_clock is steady: ", std::chrono::monotonic_clock::is_steady);

生成此编译错误:

error: 'is_steady' is not a member of 'std::chrono::monotonic_clock'

有人知道 NDK 是否完全支持 chrono 吗? 我还想知道将 c++11 与 NDK 一起使用是否是个好主意。我不确定它是稳定的还是将来可能会发生变化。

最佳答案

好吧,我刚刚找到了解决方案。看起来您需要告诉您将要使用的 gcc 版本(我猜默认情况下是 4.7)。我刚刚在我的 Application.mk 中添加了这一行

NDK_TOOLCHAIN_VERSION := 4.8

现在我可以使用 steady_clock 和 is_steady。

关于android - Android NDK 部分不支持计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20771753/

相关文章:

C++0x:在 std::map 中存储任何类型的 std::function

c - GCC atomic buitlins 是否与 std=C99 一起使用?

android - 如何在Android自定义软键盘中设置自定义字体,无论任何应用程序

java - 使用 Java 在 Android 上解密 OpenSSL 加密的文件

javascript - 找到Phonegap使用的WebView?

c++ - 'PQconnectdbParams' 未在此范围内声明

C++11 如何使用 lambda 和高阶函数将 vector 转换为不同类型的 vector

android - (eclipse 中的 libGDX android)无法实例化 Activity ComponentInfo

c++ - 反汇编二进制文件中的 HIGHLOW 是什么意思?

c++ - Nuget C++ 包用文件淹没了我的解决方案