隐式实例化未定义模板&#st; :: future <void>&#39;在Android中

时间:2017-09-15 07:54:37

标签: c++11 android-ndk

我正在Android中编写异步场景加载器。我使用std :: future和std :: async在iOS中编写了这个加载器。但是相同的代码在Android中不起作用。 我的Scene.h如下:

var chart = c3.generate({
    data: {
        x: 'x',
        xFormat: '%Y-%m-%d %H:%M:%S'

显示错误:

    #include <future>
    class Scene
    {
       private:
       std::future<void>   mAsyncSceneLoadingHandler ;
    }

但是,如果我点击std :: future,它将转到正确的头文件。

我使用Android Studio。我的gradle看起来像这样:

error: implicit instantiation of undefined template 'std::future<void>'
           std::future<void>   mAsyncSceneLoadingHandler ;
/usr/local/opt/android-sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/future:114:11: note: template is declared here
       class future;

我已检查了所有可用的答案,但仍无法找到解决方案。

我感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您应该tell cmake使用c++_static

cmake {
    …
    arguments '-DANDROID_STL=c++_static'
}