Android-NDK的linux交叉编译环境

news2024/11/24 12:43:19

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.coloradmin.cn/o/1588926.html

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

相关文章

Okhttp全链路监控

目标: 1).监控网络请求的各个阶段 2)获取每一个阶段的耗时和性能,用于性能分析。包括dns解析,socket连接时间,tls连接时间,请求发送时间,服务器接口处理时间,应答传输时…

Windows搭建LightPicture图片管理网站结合内网穿透实现公网访问本地图片

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

数字证书在网络安全中的关键作用与日常应用

在当今数字化的时代,网络安全问题日益凸显,保护数据安全和用户隐私成为了人们关注的焦点。数字证书作为一种重要的网络安全技术,其在网络安全中扮演着关键的角色,并且在我们的日常生活中有着广泛的应用。现在给大家介绍简单介绍下…

数据结构——链表变形

数据结构——链表变形 带尾指针的链表尾插的变化 循环双向双向循环 我们在上次已经了解了单链表,今天我们来了解一下链表的各种变形,如果还没有了解过上面单链表的小伙伴可以点击这里: https://blog.csdn.net/qq_67693066/article/details/13…

避坑指南: “低代码开发平台”怎么选看这篇!附案例参考

从事TOB行业 9 年,深入体验过 10 余款低代码产品。 下面基于我的个人认知给大家讲一讲: 低代码开发平台该如何选?从哪些维度可以判断低代码平台适合你的企业?多家企业采用低代码平台的实践案例! 目前市面上有超过 2…

vue快速入门(十)v-bind动态属性绑定

注释很详细&#xff0c;直接上代码 上一篇 新增内容 图片切换逻辑动态绑定的完整写法与简写方法 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice…

IDM激活步骤-亲测可用

前言&#xff1a;我试了3种方法&#xff0c;仅以下方法激活成功&#xff0c;其他都是30天试用 使用步骤&#xff1a; 1.从官网下载IDM并安装&#xff1a;https://www.internetdownloadmanager.com/ 2.下载激活工具&#xff1a;https://wwif.lanzouw.com/iSY2N16s81xi &#…

2024年第十四届MathorCup数学应用挑战赛B题解题思路

B题https://mbd.pub/o/bread/ZZ6Wm5dx 问题1:对于附件I(Pre_test文件夹)给定的三张甲骨文原始拓片图 片进行图像预处理&#xff0c;提取图像特征&#xff0c;建立甲骨文图像预处理模型&#xff0c;实现对 甲骨文图像干扰元素的初步判别和处理。 针对问题1&#xff0c;对于附件…

备战蓝桥杯---刷杂题2

显然我们直接看前一半&#xff0c;然后我们按照斜行看&#xff0c;我们发现斜行是递增的&#xff0c;而同一行从左向右也是递增的&#xff0c;因此我们可以直接二分&#xff0c;同时我们发现对称轴的数为Ck,2k. 我们从16斜行枚举即可 #include<bits/stdc.h> using name…

文心一言 VS 讯飞星火 VS chatgpt (235)-- 算法导论17.2 3题

三、假定我们不仅对计数器进行增 1 操作&#xff0c;还会进行置 0 操作(即将所有位复位)。设检测或修改一个位的时间为 Θ(1) &#xff0c;说明如何用一个位数组来实现计数器&#xff0c;使得对一个初值为 0 的计数器执行一个由任意 n 个 INCREMENT 和 RESET 操作组成的序列花费…

【每日练习】二叉树

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;二叉树 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 文章目录 一、100. 相同的树1. 题目简介2.…

程序员需要考证吗?程序员考证真的有用吗?

程序员需要考证吗?程序员考证真的有用吗? 软考简介 软考&#xff0c;即软件设计师考试&#xff0c;是由中国人事部主管的一项专业技术资格考试。通过软考&#xff0c;考生可以获得软件设计师等级证书&#xff0c;这是国家认可的专业技术资格证书之一。软考作为我国软件行业的…

docker安装华为高斯-opengauss

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

【XR806开发板试用】自带mqtt的调试教学

1、下载代码 mkdir xr806_openharmony cd xr806_openharmony repo init -u ssh://gitgitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml repo sync -c repo forall -c git lfs pull **最近仓库在整合&#xff…

软件设计师-基础知识科目-算法设计与分析8

八、算法设计与分析&#xff1a; 常见算法&#xff1a; 回溯方法&#xff1a; 用深度优先的探索问题的解空间。应用场景&#xff1a;N皇后问题。&#xff08;背&#xff09; 分支界限法&#xff1a; 用广度优先的探索问题的解空间&#xff0c;采用的是分支界限法算法设计策…

【数据库】PostgreSQL源码编译安装方式与简单配置(v16.2)

PostgreSQL源码编译安装方式与简单配置&#xff08;v16.2&#xff09; 一、PostgreSQL安装基本介绍1.1 几种PostgreSQL的安装方式1.2 删除原有的PostgreSQL1.3 编译安装过程简介 二、源码编译安装方式详情2.1 下载源代码2.2 编译安装运行 configure执行 make执行 make install …

监控服务zabbix的部署

监控服务zabbix部署 文章目录 监控服务zabbix部署1. zabbix介绍2. zabbix特点3. zabbix配置文件4. 部署zabbix4.1apache安装4.2mysql安装php安装(yum方式)4.3php安装&#xff08;源码方式&#xff09;4.4配置apache代理4.5zabbix安装4.6zabbix服务端配置4.7zabbix服务端web界面…

Python应用|获取矢量数据的多边形个数

import geopandas as gpd #首先导入geopandas包# 读取Shapefile文件 shp_file "E:\python\china" gdf gpd.read_file(shp_file)# 获取多边形个数 num_polygons len(gdf)print("Number of polygons:", num_polygons) 图1|输出结果

淄博、哈尔滨、天水…社交媒体助推下的网红城市能“长红”吗?

烧烤卷饼带火山东传统工业小镇淄博&#xff1b; 冰雪狂欢让东北的哈尔滨在寒冬爆火&#xff1b; 一碗麻辣烫让西北天水小城变“网红”…… 在刚刚过去的清明假期&#xff0c;甘肃天水可谓是“热辣滚烫”&#xff0c;在春暖花开时节&#xff0c;迎来了属于它的春天。而被人们逐…

QT:QMainWindow、ui界面、资源文件的添加、信号和槽

1.练习&#xff1a;使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(…