音视频学习之NDK交叉编译基础

aarch64-linux-android-gcc交叉编译android 64位动态库 一、准备工作 1、交叉编译工具 下载/生成android ndk,我使用的是android-ndk-r12b,平台支持从android-9到android-24 二、编译过程 1、指定编译工具链 CC_HOME=/home/waitor/tool/android-ndk-r12b BIN_PATH=$(CC_HOME)/toolchains/aarch64-linux... 阅读详情

我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末。也欢迎各路大神门前来装X。

交叉编译

交叉编译就是程序的编译环境和实际运行环境不一致,即在一个平台上生成另一个平台上的可执行代码。

比如NDK,你在Mac、Win或者Linux上生成的C/C++的代码要在Android平台上运行,就需要使用到交叉编译了。

通俗点说就是你的电脑和手机使用的CPU不同,所以CPU的指令集就不同,比如arm的指令集在X86上就不能运行。

常用的编译工具链

gcc

GNU C编译器。原本只能处理C语言,很快扩展,变得可处理C++。(GNU计划,又称革奴计划。目标是创建一套完全自由的操作系统)

Android在之后彻底移除了gcc,默认使用clang编译,所以使用不同版本的ndk对ffmpeg进行交叉编译时会出现同样的脚本在旧版的ndk能编译通过,但是旧版的就不编译不通过的问题。

笔者会在后面的学习过程中使用最新的ndk对最新版的ffmpeg进行交叉编译,并且会通过文章记录学习过程,感兴趣的同学可以持续关注。

g++

GNU c++编译器

gcc和g++都能够编译c/c++,但是编译时候行为不同。

对于gcc与g++会有以下区别:

后缀为.c的源文件,gcc把它当作是C程序,而g++当作是C++程序;后缀为.cpp的,两者都会认为是c++程序

g++会自动链接c++标准库stl,gcc不会

gcc不会定义__cplusplus宏,而g++会

clang

clang 是一个C、C++、Object-C的轻量级编译器。基于LLVM (LLVM是以C++编写而成的构架编译器的框架系统,

android NDK 开发环境搭建 linux mac windows(WSL)下android NDK开发环境搭建 阅读详情

相关推荐

Android-NDK-clang 编译 FFmpeg

前期准备NDK-21ffmpeg-4.4本文你可以了解到clang。

yinshipin007的博客 1669

音视频大合集最终篇;学废了

加企鹅群:1079654574解锁《音视频八大板块资料》音视频大合集,从初中高到面试应有尽有;让学习更贴近未来实战。已形成PDF版八个模块内容如下1.音视频基础2.FFmpeg实战3.流媒体客户端4.流媒体服务器5.WebRTC项目实战6.Android NDK开发7.项目实践8.零声服务整理不易,关注一下吧。开始进入正题,ღ( ´・ᴗ・` ) 🤔。

irainsa的博客 2415

Android-音视频学习系列-(二)-交叉编译动态库、静态库的入门学习(1)

这样就能编译成一个 Android 平台可执行的文件了,这样看起来路径太多不易阅读,大家可以参考我提供的全局变量配置来进行设置,最后一行命令解决,如下:$NDK_GCC_arm $NDK_CFIG_arm -pie -o test test.c 复制代码可以看到,我们使用 Android NDK 编译出来的可执行文件已经在 Linux 平台下不可执行了。下面我们将 test 文件导入到 手机 /data/local/tmp 目录。

WJud11的博客 787

Android-音视频学习系列-(二)-交叉编译动态库、静态库的入门学习

return 19921001; } 预处理阶段 预处理阶段主要处理 include 和 define 等。它把 #include 包含进来的 .h 文件插入到 #include 所在的位置,把源程序中使用到的用 #define 定义的宏用实际的字符串代替。 我们可以通过以下命令来对 c/c++ 文件预处理,命令如下: gcc -E test.c -o test.i //-E 的作用是让 gcc 在预处理结束后停止编译 可以看到输入该命令之后就会生成一个 test.i 文件。 编译阶段 在这个阶段

m0_66155658的博客 372

Android中集成FFmpeg及NDK基础知识

在日常App开发中,难免有些功能是需要借助NDK来完成的,比如现在常见的音视频处理等,今天就以ffmpeg入手,来学习下Android NDK开发的套路.总的来说使用CMake方式还是比较简单的,编写文件,在gradle中指定文件位置就好.重点在于相关库的交叉编译及编写调用相关api文件的C文件,这里就需要一些C的基础了.原文Android中集成FFmpeg及NDK基础知识 - 掘金。

qq_52703909的博客 1452

Android:JNI与NDK(二)交叉编译与动态库,静态库

本篇目录 一、前言 本篇主要以window开发环境为背景介绍一下NDK开发中需要掌握的交叉编译等基础知识,选window系统主要是照顾大多数读者,mac ,linux操作系统基本是同样适用的。 交叉编译就是在A平台编译出可以在B平台执行的文件,对于我们安卓开发者来说交叉编译就是在window或者mac或者linux系统上编译出可在安卓系统上运行的可执行文件,什么时候需要用到交叉编译呢?音视频开发...

qq_16386581的博客 1311

面试官:还不会自制音视频播放器?移动开发者进阶必备《578页Android NDK七大模块学习宝典》拿去通关!

前言 同NDK技术的渊源始于3年前,使用so文件的时候了解到NDK技术,并且C语言一直是强项,就鼓捣起NDK开发。在AndroidStduio还没推广的年代,基于eclipse搭建NDK开发环境需要安全依赖开发工具,并且调试起来具备难度。随后AndroidStudio也先后支持nkd-build和cmake使用NDK开发。 什么是NDK Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。 在 Android 应用中使用原生代码的应用场景 ..

weixin_44339238的博客 353

Android 音视频难学?音视频(流媒体)开发学习也有套路

我们都知道音视频流媒体开发这块的知识比较纷繁复杂,对新手很不友好,自学难度大,想要们既需要比较扎实的C/C++基础,又需要有很多的工程/项目经验,今天就从音视频开发/开源框架/就业方向分析,为广大开发者学习音视频技术提供系统学习的方向。...

m0_64420071的博客 1406

交叉编译-Mac环境使用NDK编译FFmpeg

FFmpeg是一套非常强大的音视频处理工具,在音视频领域绝对是一个元老级的存在,围绕FFmpeh可以进行音视频编解码,裁剪,拼接等操作。今天的主题就是使用NDK进行教交叉编译,生成so文件在Android上使用。

yinshipin007的博客 230

Unraid小白必看:5分钟搞定OpenWrt软路由安装(附iStoreOS配置技巧)

本文为Unraid新手提供了一份详尽的OpenWrt软路由安装与配置指南。通过虚拟机技术,在Unraid系统上快速部署基于iStoreOS的软路由,详细讲解了旁路由与主路由两种模式的网络配置、性能优化技巧及常见故障排查方法,帮助用户充分利用闲置硬件,打造高性能、可定制的家庭网络中枢。

wine的专栏 486

AIDD-人工智能药物设计-构建基于机器学习方法的在线预测平台高准确预测药物诱导骨毒性

在此基础上,提取多种药物分子特征,包括分子指纹(如MACCS、Morgan、RDKit、TopologicalTorsion、AtomPairs与Descriptors)及分子图谱,通过Transformer编码器与神经网络进行机器学习模型训练。最后,将训练好的模型部署为在线Web服务器(BoneToxPD),供用户快速预测药物的骨毒性。本研究不仅在骨毒性预测的准确性方面取得了突破,还在模型解释性方面提供了新的视角,通过注意力机制精准识别出影响骨毒性的关键化学基团,推动药物研发领域更安全、更高效的发展。

itwangyang520的博客 1081

stm32H743IIT6 cubemx HAL USB UVC摄像头基础

stm32性能已经很强了, 可以驱动ov5640摄像头, 所以可以把摄像头接在stm32上, 当作一个摄像头驱动器, 连接到电脑上 开发环境: stm32cubemx 6.0.1 单片机: 自己做的stm32h743iit6核心板,兼容正点原子 学习资料: 圈圈学USB 鱼鹰谈单片机 从零开始学习USBhttps://to-run-away.blog.csdn.net/article/details/85038393 整个项目是基于CDC串口上修改 1 stm32 USB 代码概览 ..

紫枫洛天的博客 7752

Xarray实战:从气象数据到可视化分析的完整流程(附Python代码)

本文详细介绍了使用Xarray库处理气象数据的完整实战流程。针对气象领域常见的NetCDF和GRIB格式,文章从数据读取、坐标操作、智能索引、统计计算到高级可视化,提供了完整的Python代码示例。重点阐述了Xarray如何高效处理高维标记数据,帮助地球科学领域的研究人员将繁琐的数据处理工作转化为高效的分析流水线。

d6e7f8g9h的博客 290

数字设计实验:自动售货机

本文旨在介绍数字设计实验:自动售货机的设计思路和实现代码

2401_83740084的博客 2228

odoo19/18集成reportbro 打印插件 完美支持静默打印

ReportBro设计器 一个用于创建PDF和XLSX报告模板的javascript插件。ReportBro Designer可以轻松集成到您的Web应用程序中。每个人都可以设计和编辑文档模板,并直接在浏览器中预览它们。可以使用服务器上的 (有关完整的文档和演示,请参阅上的ReportBro项目网站。reportBro官方没有提供。测试环境:odoo17社区版。2.产品标签打印设计。

zxltwins的博客 2773

【WRFDA教程第一期】运行观测预处理程序(OBSPROC)

运行观测预处理程序(OBSPROC)

WW、forever的博客 1897

EMC中的RE测试与整改

测试主要测试电子、电气设备或系统在正常工作时自身对外界的辐射干扰强度,包括来自电路板、机箱、电缆及连接线等所有部件的辐射骚扰。分为:磁场辐射和。其中后者较为应用普遍。测试频段根据不同标准要求不一致。手机测试的频段主要为30-1000MHZ。需要注意的是设备在进行RE测试时要求尽可能满配置,满负荷的运行。同时RE也是EMC中的难点。

学海无涯的专栏 1671

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 盘点7个强大的NODE.JS框架
下一篇: NDKr20使用clang编译ffmpeg
android1396
博客等级 码龄6年 4粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值