我尝试在我的原生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
所有关于计时和线程!
答案 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是默认的