Doubango与编译学习相关资料----来自好友王阳(他的博客http://blog.163.com/dream_burgeon/blog/static/235007155201469104240)

本文主要是介绍Doubango与编译学习相关资料----来自好友王阳(他的博客http://blog.163.com/dream_burgeon/blog/static/235007155201469104240),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Doubango修改编译纪要  

doubango使用C语言编写,其他语言使用其代码需要响应的接口,如在Android平台上调用,则需要JNI(Java Native Interface)接口调用,可以使用相应的代码生成工具生成这些JNI的代码。以下介绍几个自动生成工具。

SWIG:
RTL:
FSME/FSMC:

另外介绍一个标准:
POSIX :可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX )POSIX标准定义了操作系统应该为应用程序提供的接口标准。

tar -zxvf doubango.zip
cd doubango

在Linux下编译Doubango使其能够在ARM上运行,则需要用到交叉编译器NDK。
不同OS有不同版本的NDK,可根据需要进行选择,见http://developer.android.com/。
以下是NDK的结构。
/toolchains下是不同平台使用的不同编译工具,支持linux下编译生成x86、mipsel、arm指令集。
/platform下是支持不同Android平台版本的工具。
/platform/android-X/arch-xxx/usr/下包含了需要的库和头文件。
Doubango修改编译纪要 - 第一首歌 - 萌芽
  编译成功需要以下几个规则:
1.使用Android库代替GCC原有库。
2.和系统库相连。
3.遵循特殊规则,使用NDK工具。

编译需要makefile控制文件(控制编译过程),它通常是通过configure进行生成的。

这篇关于Doubango与编译学习相关资料----来自好友王阳(他的博客http://blog.163.com/dream_burgeon/blog/static/235007155201469104240)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209447

相关文章

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存