使用ADT/Eclipse为NDK设置C++ 11(std :: thread)

Waj*_*jih 8 eclipse java-native-interface android android-ndk c++11

我一直在尝试使用C++ 11.我正在开发一个Android项目,我想使用std :: mutex.与OpenCV一起但无论我做什么,我似乎无法修复Type 'mutex' could not be resolved 错误.

我试过按照我在SO和其他地方找到的教程. LINK1 LINK2 LINK3 LINK4

  1. ADT v22.3.0-887826
  2. 已安装的C/C++编译器(CDT)

经过这么多教程,它现在已成为一个真正的混乱.所以我将解释我目前的设置

  • 项目>属性> C/C++构建>工具链编辑器
    • 目前的工具链是"Cross GCC"
    • Current Builder是"Android Builder"
  • 项目>属性> C/C++构建>发现选项

    • 编译器调用命令是"gcc"
    • Compilter Invocation argments是-E -P -v -dD"$ {plugin_state_location} /specs.c-std = c ++ 11"
  • 项目> C/C++一般>路径和符号>#符号选项卡

    • 符号= __cplusplus和值= 1

在我的Application.mk文件中,我有以下内容

APP_STL := gnustl_static
APP_USE_CPP0X := true
APP_CPPFLAGS := -std=c++11 -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-8
Run Code Online (Sandbox Code Playgroud)

我试图将cplusplus符号的值更改为201103L并尝试使用空值的__GXX_EXPERIMENTAL_CXX0X

但似乎什么都没有用,我做错了什么?

任何帮助表示赞赏!

Ale*_*ohn 9

支持std::thread有点特别.例如,Binglong的这篇文章解决了这个问题.这篇文章很简短,但可以用一句话概括:

如果你愿意,你可以不使用(默认)GCC 4.6工具链#include <thread>#include <mutex>.

所以,请添加NDK_TOOLCHAIN_VERSION=4.8或者添加NDK_TOOLCHAIN_VERSION=clang到您的Application.mk.

要使ADT 正确地重建其索引,请参阅 Android NDK构建,无法解析方法Eclipse成功编译但仍会出现语义错误.

  • 截至2018年至19-01年,指向Binglong文章的链接指向一条墙,其中指出所讨论的文章是私有的,因此几乎所有未被文章作者授予权限的人都无法访问它. (2认同)

归档时间:

查看次数:

9928 次

最近记录:

9 年,10 月 前