NDKr8b和gnu ++ 0x状态

时间:2012-08-03 12:50:06

标签: android android-ndk

我尝试在我的原生android代码中使用gnu ++ 0x功能。我正在使用最新版本(r8b,带有工具链4.6),而使用std :: chrono或std :: thread的代码使用linux gcc 4.6时效果很好,似乎android ndk不支持这些功能。

要编译,我在Application.mk文件中使用以下标志:

    APP_CPPFLAGS := -std=gnu++0x
    APP_STL := gnustl_shared
    APP_GNUSTL_CPP_FEATURES := rtti exceptions

我可能做错了吗?是否有链接知道android ndk中c ++ 0x支持的状态?

非常感谢!

此致

JB

只是这样的示例代码:

    std::chrono::time_point<std::chrono::system_clock> start = 
            std::chrono::system_clock::now();

    std::chrono::milliseconds duration (100);
    std::this_thread::sleep_for(duration);

    std::chrono::milliseconds elapsedTime =
        std::chrono::duration_cast<std::chrono::milliseconds>
            (std::chrono::system_clock::now() - start);

带标题,

    #include <chrono>
    #include <thread>

使用ndk-build,我收到如下错误信息:

    error: 'chrono' in namespace 'std' does not name a type
    ....
    error: 'std::this_thread' has not been declared

所有关于计时和线程!

3 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但我在Android NDK中成功使用了chrono。我刚把这一行添加到我的Android.mk:

LOCAL_CPPFLAGS  := -std=c++11

我还在Application.mk中添加了这一行来解决我使用chrono时遇到的一些问题:

NDK_TOOLCHAIN_VERSION := 4.8

现在你支持c ++ 11,包括chrono。

答案 1 :(得分:0)

<NDK_root_folder>/docs/CPLUSPLUS-SUPPORT.html

就是这样,在这里您可以获得NDK可以为您的C ++代码提供的所有信息和支持。

答案 2 :(得分:0)

尝试一下: NDK_TOOLCHAIN_VERSION:= 4.8

NDK_TOOLCHAIN_VERSION     将此变量定义为4.4.3或4.6以选择GCC编译器的版本。     4.6是默认的