Android-NDK的linux交叉编译环境

NDK工具包下载

NDK 下载  |  Android NDK  |  Android Developers

https://github.com/android/ndk/wiki/Unsupported-Downloads

以android-ndk-r26c下载为例,下载后将压缩包解压至/usr目录下

CMakeLists编译选项设置

编译平台变量判断条件中增加一下android条件下CMake的变量

CMAKE_MINIMUM_REQUIRED(VERSION 3.10)if(BUILD_TARGET_PLATFORM STREQUAL "aarch64")message(STATUS "BUILD_TARGET_PLATFORM: " "${BUILD_TARGET_PLATFORM}")set(CMAKE_SYSTEM_PROCESSOR aarch64)set(CMAKE_C_COMPILER /usr/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc)set(CMAKE_CXX_COMPILER /usr/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++)
elseif(BUILD_TARGET_PLATFORM STREQUAL "android")message(STATUS "BUILD_TARGET_PLATFORM: " "${BUILD_TARGET_PLATFORM}")set(CMAKE_SYSTEM_PROCESSOR aarch64)set(ANDROID_NDK /usr/android-ndk-r26c)set(CMAKE_TOOLCHAIN_FILE ${ANDROID_NDK}/build/cmake/android.toolchain.cmake)set(ANDROID_ABI arm64-v8a)set(ANDROID_PLATFORM android-28)set(ANDROID_STL c++_static)set(ANDROID_LD default)message(STATUS "BUILD_TARGET_PLATFORM: " "${BUILD_TARGET_PLATFORM}")
endif()
project(LINGJING_NHCB LANGUAGES C CXX)

详细变量设置参考

C++ 库支持  |  Android NDK  |  Android Developers

编译出的程序默认链接器为/system/bin/linker64表示成功

注意事项:

https://developer.android.google.cn/ndk/guides/cpp-support?hl=zh-cn

NDK对LINUX下的C库进行了重构和改造形成了属于NDK自己的c库,该库集合GNU的pthread等常见库于一体,因此LINUX平台下的一些代码直接编译可能会报错,如多线程的一些宏定义等。需要手动逐个进行修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu下man手册 查不到 pthread_mutex_lock等系列函数用法的问题

问题 在ubuntu系统中无法man到 pthread_mutex_lock pthread_mutex_trylock pthread_mutex_unlock等函数 $ man pthread_mutex_lock 没有 pthread_mutex_lock 的手册页条目解决方式 输入以下命令 sudo apt-get install manpages-posix manpages-posix-dev 然后输入密码 再次m…

MobaXterm无法登陆oracle cloud的问题

问题 我在oracle cloud上创建实例的时候,只能使用密钥的方式登陆,当时下载了私钥文件。实例创建好以后,在mobaxterm上使用这个私钥文件无法登陆 排查 尝试使用mobaxterm的keygen,把私钥文件转成ppk格式,还是不行。…

高中数学:三角函数-同角与异角的三角函数关系

一、同角三角函数关系 1、基本公式 知一求二 2、快速求值方法 重点掌握辅助三角形方法 3、题型 3.1、一次式整式求值 sinα和cosα指数是一次的求值,建议用辅助三角形方法 例题 3.2、一次式分式求值 分子、分母同除以sinα或者cosα 例题 3.3、二次式…

区块链安全-----接口测试-Postman

Postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易 用性好 。无论是开发人员进行接口调试,还是测试人员做接口测试,Postman都是我们的首选工具 之一 。 更早的接入测试,更早的发现问…

切面条(蓝桥杯)

目录 题目 分析 代码实现 题目 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折1…

光耦合器的使用:了解输入和输出之间的关系

光耦合器也称为光隔离器,是许多电子电路中的重要组件,可在输入和输出信号之间提供隔离。它们在各种应用中确保安全、降低噪声和防止接地环路方面发挥着至关重要的作用。在本文中,我们将深入研究光耦合器的基础知识,探讨它们的工作…

人形机器人行业报告:AI赋能人形机器人开启产业化元年

今天分享的是人形机器人专题系列深度研究报告:《AI赋能,人形机器人开启产业化元年》。 (报告出品方:国泰君安证券) 报告共计:56页 要点 通用性是人形机器人商业化的关键,AI大模型赋能加速机…

打破传统,蔚莱普康定义国货美妆新未来

在全球美妆市场经济改革的今天,中国新兴品牌蔚莱普康,正在以前所未有的速度和规模,冲破瓶颈,赢得市场的广泛认可。这一切,得益于国家政策的扶持和国货品牌自身的不懈努力与创新。 各类国潮产品不断‘出圈’的背后&…

java程序 .exe启动nginx防止重复启动,已解决

java代码生成好的.exe启动nginx服务程序 根据nginx占用端口来解决nginx服务重复启动问题(下面代码了解代码逻辑后根据自己的业务需求修改即可) 代码: package org.example;import javax.swing.*; import java.awt.*; import java.io.*; …

Linux-select剖析

一、select函数 select函数是IO多路复用的函数,它主要的功能是用来等文件描述符中的事件是否就绪,select可以使我们在同时等待多个文件缓冲区 ,减少IO等待的时间,能够提高进程的IO效率。 select()函数允许程序监视多个文件描述符…

书生·浦语大模型全链路开源体系-第3课

书生浦语大模型全链路开源体系-第3课 书生浦语大模型全链路开源体系-第3课相关资源RAG 概述在 InternLM Studio 上部署茴香豆技术助手环境配置配置基础环境下载基础文件下载安装茴香豆 使用茴香豆搭建 RAG 助手修改配置文件 创建知识库运行茴香豆知识助手 在茴香豆 Web 版中创建…

工作日常随记-总

软件测试主管工作日常随记-总 前言 接下来,我将开始散文式地记录我作为一位从业3年多的软件测试人员的软测经验。这是我在繁忙的日常工作的中跋涉出来又又投入的另一工作(bushi)另一兴趣中去。 我将简单(偏流水线向)…

50. QT/QML中创建多线程的方式汇总

1. 说明 在QT / QML中创建线程主要有三种方式。第一种:在定义类时继承 QThread 这个类,然后重写父类的虚函数 run(),将子线程需要执行的业务代码放到 run() 函数当中即可。**注意:**这种方式官方已经摒弃了。第二种:使用moveToThread()函数将需要在子线程中执行的函数类移…

【每日练习】二叉树

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:二叉树 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 文章目录 一、100. 相同的树1. 题目简介2.…

问题汇总

一、TCP的粘包和拆包问题? TCP在发送和接受数据的时候,有一个滑动窗口来控制接受数据的大小,这个滑动窗口你就可以理解为一个缓冲区的大小。缓冲区满了就会把数据发送,数据包的大小是不固定的,有时候比缓冲区大有时候…

NIST再次强调:2024-2030年,必须升级至抗量子算法

4月10日至12日,美国国家标准与技术研究院(NIST)在马里兰州罗克维尔举办第五届NIST PQC(后量子密码学)标准化会议,该会议的目的是对PQC算法进行全面讨论(包括已选定和正在评估的算法)…

如何处理ubuntu22.04LTS安装过程中出现“Daemons using outdated libraries”提示

Ubuntu 22.04 LTS 中使用命令行升级软件或安装任何新软件时,您可能收到“Daemons using outdated libraries”,“Which services should be restarted?”的提示,提示下面列出备选的重启服务,如下。 使用以下命令,能够…

LangChain - 文档加载

文章目录 一、关于 检索二、文档加载器入门指南 三、CSV1、使用每个文档一行的 CSV 数据加载 CSVLoader2、自定义 csv 解析和加载 (csv_args3、指定用于 标识文档来源的 列(source_column 四、文件目录 file_directory1、加载文件目录数据(Di…

day05-java面向对象(上)

5.1 面向对象编程 5.1.1 类和对象 1、什么是类 类是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。 属性:就是该事物的状态信息。 行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物…

Go操作Kafka之kafka-go

Kafka是一种高吞吐量的分布式发布订阅消息系统,本文介绍了如何使用kafka-go这个库实现Go语言与kafka的交互。 Go社区中目前有三个比较常用的kafka客户端库 , 它们各有特点。 首先是IBM/sarama(这个库已经由Shopify转给了IBM),之…