配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目

简介: 配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目

配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
下载NDK
下载时注意对应自己需要的版本

官网下载https://developer.android.google.cn/ndk/downloads?hl=en#:~:text=Select%20t
配置环境变量
1.在NDK目录下新建两个文件(名字随意)env-setup-64.sh env-setup-32.sh。一个是设置64位编译器,一个是设置32位编译器
** 内容如下:

export NDK=/home/a/ndk/android-ndk-r26b
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64

export CC=$TOOLCHAIN/bin/aarch64-linux-android26-clang
export CXX=$TOOLCHAIN/bin/aarch64-linux-android26-clang++
export PATH=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot:$PATH
export NDK=/home/a/ndk/android-ndk-r26b
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64

export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi26-clang
export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi26-clang++
export PATH=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot:$PATH
2.当需要编译64位程序时,执行env-setup-64.sh source env-setup-64.sh,如果需要权限则手动加上

3.在同一个终端下,直接使用cmake构建项目并编译

注意
使用上面的方式,有些cmake的变量不会被设置,比如CMAKE_SYSTEM_PROCESSOR(可通过此变量确定目标平台)。

官方推荐的使用方法如下:

{spa.zhongaojia.com]
{spa.nbdcgg.com]
{spa.kaitori-sagamihararokuchome-housedo.com]
{spa.senfbxg.com]
{spa.futahoshi.com]
{spa.jsyswh.com]
export ANDROID_NDK=/toolchain_path
cmake ../files -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_NDK=$ANDROID_NDK -DANDROID_PLATFORM=android-26
1.执行 export ANDROID_NDK=/toolchain_path设置ndk的路径

2.执行 cmake ../files -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_NDK=$ANDROID_NDK -DANDROID_PLATFORM=android-26

通过设置-DCMAKE_TOOLCHAIN_FILE参数,cmake执行时,会自动到ndk目录下找android.toolchain.cmake文件,此文件设置了ndk交叉编译需要的所有变量。

分类: CMakeLists

相关文章
|
3天前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
21 0
安卓项目:app注册/登录界面设计
|
16天前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
2月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
120 1
|
15天前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
2天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
16 2
|
2天前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
3天前
|
Java Android开发 Windows
玩转安卓之配置gradle-8.2.1
为安卓开发配置Gradle 8.2.1,包括下载和解压Gradle、配置环境变量、修改配置文件以增加国内镜像,以及在Android Studio中配置Gradle和JDK的过程。
14 0
玩转安卓之配置gradle-8.2.1
|
24天前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
65 1
|
1月前
|
JavaScript 前端开发 Android开发
让Vite+Vue3项目在Android端离线打开(不需要起服务)
让Vite+Vue3项目在Android端离线打开(不需要起服务)
|
1月前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。