0

我尝试在我的原生 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

以及关于chrono和thread的一切!

4

3 回答 3

1

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

LOCAL_CPPFLAGS  := -std=c++11

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

NDK_TOOLCHAIN_VERSION := 4.8

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

于 2013-12-25T10:15:55.937 回答
0
<NDK_root_folder>/docs/CPLUSPLUS-SUPPORT.html

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

于 2012-08-03T13:02:05.173 回答
0

试一试:NDK_TOOLCHAIN_VERSION := 4.8

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

于 2013-08-27T13:45:23.170 回答