Android Studio2.2 使用CMake编译 C/C++

简介:
Android Studio从2.2版本开始,可以使用CMake进行C++的编译了,这很好。
之前折腾过AS,那是真的很折腾,而且有且仅有的ndk-build编译也并不是很令人愉快。
折腾了下最新支持的CMake直接编译,并没有费多大劲,并且成功了,这很令我欣慰。

我用Wizard创建了一个工程,第一步勾选上“C++ Include Support”,其他的都默认。
然后开始Build,结果显示一直都卡死在Gradle:Resolve dependencies':app:_debugCompile'。
这是为什么呢?因为它需要从Maven的仓库里面拉取东西,因为不可描述的网络问题,所以就一直卡死在这里了,解决办法很简单,那就是改用国内的Maven源,有两个选择:
阿里云:http://maven.aliyun.com/nexus/content/groups/public/
开源中国:http://maven.oschina.net/content/groups/public/
其中,阿里云是很快的,我就改用了阿里云的源。 
修改build.gradle,将jcenter()或者mavenCentral()替换掉即可 
allprojects {
    repositories {
        maven{ url  ' http://maven.aliyun.com/nexus/content/groups/public/ '}
    }
}

重新sync gradle就不再报错了,但是接着事儿又来了

意思大概是,找不到ABI mips64的gcc工具链,我找了所有的工程配置文件,都没有找到相关的配置,也就是说,不论是platform也好,abi也好,都是默认的。
它默认的platform是Android21,ABI是mips64。
我去文件夹下去看了下,Android21下面的确是没有的这个abi的。
我去查看了官方的文档( 向您的项目添加 C 和 C++ 代码 ),里面有提到如何去配置。
打开app下面的build.gradle,在android{}下面添加:
android{

        ndk {
            // Specifies the ABI configurations of your native
            // libraries Gradle should build  and package with your APK.
            abiFilters  ' x86 '' x86_64 '' armeabi '' armeabi-v7a ',
                     ' arm64-v8a '
        }

}
指定好ABI,即可。
再次编译,一切OK。
打包成APK,发送到手机上运行,看起来是这样的:
目录
相关文章
|
1月前
|
程序员 API 数据库
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
60 0
|
1月前
|
存储 缓存 安全
【cmake 生成配置文件】CMake与现代C++:配置文件宏的深度探索与应用
【cmake 生成配置文件】CMake与现代C++:配置文件宏的深度探索与应用
52 0
|
1月前
|
安全 编译器 C++
【C++20概念】编译时多态性的力量
【C++20概念】编译时多态性的力量
49 0
|
23天前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
23天前
C/C++test两步完成CMake项目静态分析
通过将C/C++test集成到CMake项目中,并根据项目的需要进行配置,可以在两步内完成CMake项目的静态分析。这样可以帮助开发人员及时发现并修复潜在的代码问题,提高代码质量和可靠性。
8 0
|
30天前
|
算法 编译器 程序员
深入理解C++编译模式:了解Debug和Release的区别
深入理解C++编译模式:了解Debug和Release的区别
62 2
|
1月前
|
算法 编译器 C++
【C++ 泛型编程 中级篇】C++ 编译时技术:探索 if constexpr 和 std::enable_if
【C++ 泛型编程 中级篇】C++ 编译时技术:探索 if constexpr 和 std::enable_if
40 0
|
1月前
|
安全 算法 编译器
【C++ 静态断言的技巧】掌握C++中static_assert的力量:深入探讨编译时检查
【C++ 静态断言的技巧】掌握C++中static_assert的力量:深入探讨编译时检查
42 1
|
1月前
|
存储 算法 编译器
【C++ 关键字 static_assert 相关问题】C++ 关于静态断言的编译问题 ,深入了解静态断言
【C++ 关键字 static_assert 相关问题】C++ 关于静态断言的编译问题 ,深入了解静态断言
29 0
|
1月前
|
编解码 算法 程序员
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南(三)
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南
27 0

热门文章

最新文章