技术标签: 安卓 C ++ C ++ 11 Android-NDK cmake
我正在构建一些C ++项目,用于Android将其用于Unity插件。我成功地为iOS编译,但是我收到了Android的以下错误:
~/android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/stl_algo.h:3789:14: error: invalid use of 'auto'
~/android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.9/include/future:114:11: error: declaration of 'class std::future<void>'
class future;
我在用着 android-ndk-r10e
和这个 CMakeLists.txt
代码:
cmake_minimum_required(VERSION 2.8)
project(PluginAndroid)
# Android configuration
set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 19) # API level
set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
set(CMAKE ANDROID_STL_TYPE stlport_static)
set(CMAKE_ANDROID_TOOLCHAIN_NAME arm-linux-androideabi-4.8)
set(CMAKE_CXX_STANDARD 11)
include_directories ("${PROJECT_SOURCE_DIR}/3rdParty/common/")
....
file(GLOB source_files
"*.h"
"*.cpp"
)
add_library(PluginAndroid STATIC ${source_files})
有任何解决此问题的线索吗?
如评论中的指向 CMAKE_CXX_STANDARD
自CMAKE版本3.1以来可用(如果您使用的是Firefox,请参阅我的附加组件 这里 要查看自可用CMAKE功能以来的版本),因此您应该更改最少所需版本。
此外,您应该使用要求标记标准 cmake_cxx_standard_required.
最后,你应该使用 target_compile_features
确保您的编译器支持 auto
关键字(GCC 4.9不能为C ++ 11功能提供全部支持)。
这是您的CMAKE文件的修改版本:
cmake_minimum_required(VERSION 3.1)
project(PluginAndroid)
# Android configuration
set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 19) # API level
set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
set(CMAKE ANDROID_STL_TYPE stlport_static)
set(CMAKE_ANDROID_TOOLCHAIN_NAME arm-linux-androideabi-4.8)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include_directories ("${PROJECT_SOURCE_DIR}/3rdParty/common/")
....
file(GLOB source_files
"*.h"
"*.cpp"
)
add_library(PluginAndroid STATIC ${source_files})
target_compile_features(PluginAndroid PUBLIC cxx_auto_type)
无关,但请注意,使用 GLOB
不建议收集源文件 文档:
我们不建议使用Glob从源树收集源文件列表。如果在添加或删除源时没有cmakelists.txt文件更改,则生成的构建系统将无法知道何时要求Cmake重新生成。
为什么80%的码农都做不了架构师?>>> 环境搭建参考百度经验(未验证): 1.安卓项目中建好对应类,然后编译一下,在cmd窗口中cd到项目的bin\classes目录下,使用 javah –jni 全限类名 生成对应的头文件 2.在Eclipse中右键对应项目,Android Tool –>Add Nativ...
为了提高项目的安全性,所以在编写安卓程序时时可以使用Ndk来提高APP的防护能力。下面就我写的Ndk来做一个简单总结记录,对于ndk小白还是有一定帮助的! 1.为Androidstudio配置Ndk,首先打开SDkManager,然后选中NDk选项,然后点击App...
一、前言 NDK可以支持使用C/C++来编写Android程序,不但可以引入C/C++中优秀的库资源,而且在使用底层的C/C++来处理一些复杂的运算效率更高,并且可以方便跨平台移植。本篇主要以CMake的方式来构建NDK,主要以最常规的方式创建一个NDKImportDemo,并对自动创建官方例子进行分析构建的过程以及CMakeLists.txt构建文件的配置。 二、准备 1、检查Android s...
Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。 Android.mk文件语法允许我们将Source打包成一个”modules&rd...
参考:http://blog.csdn.net/bingdianlanxin/article/details/46461899 使用工具:eclipse 1.生成so文件 1.1.打开Eclipse,新建一个Android工程 FileàNewàAndroid Application Project 一路Next下去,直到Finish。 1.2...
由于忙于公司项目,许久未写博客,而且项目中许久未用到ndk,最近项目要用上,于是今天就重温下ndk的使用教程,加深印象,也给一些未接触过ndk的同学提供涓埃之力。网上的ndk资料也是有很多,但有些还是不全或者有些问题的,其实还是需要自己亲自动手摸索,踩踩雷,总结经验。 1.先要去下载好NDK,有很多版本,现在最新的版本好像是r16了,用老点的版本...
1. 新建一个Android project 名为JNI 2. 编写jni文件 JNI(Java Native Interface)就是连接Java与Native的接口,主要是定义了一些JNI函数,让开发者可以通过调用这些函数实现Java代码调用C/C++的代码,C/C++的代码也可以调用Java的代码,这样就可以发挥各个语言的特点.Native程序就是非java...
工欲善其事,必先利其器! 下面就让我来给大家简单的介绍一下,Qt在VS2010上面开发的环境部署大杀器吧,还有Visual Assist X自动补全助手哦...... 一.安装VS2010 VS2010全称“Microsoft Visual Studio 2010”,是微软公司推出的开发环境。也是目前流行的Windows平台应用程序开发环境。 1. 在安装之前...
如果是没有显示器操作树莓派,可能会不知道树莓派有线网卡自动分配到的IP地址,不知道登录到哪儿。以下提供详细操作步骤解决这个问题。 网段扫描法 这个是推荐的办法。网段扫描工具很多,推荐一个Advanced IP Scanner,下载地址:ipscan22.exe。 虽然是小工具但需要安装。忍耐一下吧。 软件会自动检测电脑所在的网段,自动决定扫描...
I am currently creating the actionBar in android studio and I have created action buttons and my aim is to have a dropdown menu everytime I click a button. In my menu_main.xml, I added the items searc...
What I am trying to is emulate the effect of the Jquery .slideDown() effect in Swift for an iOS app. -I need a UIView to auto-resize based on the length of the text in it. -The UIView needs to push ot...
AM getting continuously the illegal character error in this url : Previously there was an extra & symbol , so I removed but still am getting same error. Can anyone help me, in finding this illegal...
I have a Firestore database holding my data. Here is the structure (database structure) subclass database structure So my booking is sub-collections of the user. Each booking contains its own restaura...
I'm pretty new to Mongo DB, and I'm having a bit of trouble getting the aggregate intersection working. Let's say I only have the following document in a collection: and I would like to return I'm doi...