17.Linux shell编程(通过Makefile看Android.mk文件)-阿里云开发者社区

开发者社区> 黑夜路口> 正文

17.Linux shell编程(通过Makefile看Android.mk文件)

简介: (创建于2018/2/11 上午8:12:32) Makefile文件 //递归展开式,可以引用还没有定义的变量,展开是引用时展开 1 str1=$(str2) ...
+关注继续查看

(创建于2018/2/11 上午8:12:32)

Makefile文件

  //递归展开式,可以引用还没有定义的变量,展开是引用时展开
  1 str1=$(str2)                                                                             
  2 str2=hello
  //直接展开式,必须引用定义好了的变量,定义之后就会展开
  4 str3:=android
  5 str4:=$(str3)
  6 str5:=$(str1) world
  //变量的追加
  8 str5 +=,nice to meet you
  //自定义函数
 10 myfun=$2 $1
 //将自定义函数返回值赋给一个变量
 11 param=$(call myfun,20,10)
 12 
 13 test:
 14         @echo $(str1)
 15         @echo $(str4)
 16         @echo $(str5)
 17         @echo $(param)
            //调用自定义函数,call是调用函数的关键字
 18         @echo $(call myfun,40,30)

Android.mk

//调用my-dir函数,返回Android.mk文件所在的目录,my-dir是内置函数,将目录赋值给变量LOCAL_PATH,
//放在第一行,地址当前所在目录
LOCAL_PATH := $(call my-dir)

#ffmpeg lib
//include $(CLEAR_VARS) 编译模块时,清空LOCAL_MODULE等参数,每个模块单独编译
//每次编译一个模块时,要清空上一个模块的变量信息,重新设置
include $(CLEAR_VARS)
//模块名称,编译生成后的模块名
LOCAL_MODULE := avcodec
//编译需要的源文件
LOCAL_SRC_FILES := libavcodec-56.so
////include file Makefile可以引入其他的Makefile文件
include $(PREBUILT_SHARED_LIBRARY)

#myapp
include $(CLEAR_VARS)
LOCAL_MODULE := myffmpeg
LOCAL_SRC_FILES := dn_ffmpeg_player.c
##-landroid参数 for native windows
LOCAL_LDLIBS := -llog -landroid -ljnigraphics
//需要的头文件
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/ffmpeg
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/libyuv
//编译需要的动态库
LOCAL_SHARED_LIBRARIES := avcodec avdevice avfilter avformat avutil postproc swresample swscale libyuv
include $(BUILD_SHARED_LIBRARY)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
linux 下C语言编程库文件处理与Makefile编写
做开发快3年了,在linux下编译安装软件算是家常便饭了。就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题。看来还是像vs、codeblocks这样的ide把人弄蠢了。便下定决心一定要好好学习下如何在linux下纯手工gcc编译c项目。
871 0
我们也说说Android.mk(4) - 依赖:目标编程的模式
我一直觉得,Makefile确实是C/C++程序员的良配,因为Makefile所使用的两种范式都是C/C++程序员不熟悉的,一种是函数式的思想,一种是依赖构成的目标链的模式。
2915 0
一起谈.NET技术,.NET中的异步编程- IO完成端口以及FileStream.BeginRead
  写这个系列原本的想法是讨论一下.NET中异步编程风格的变化,特别是F#中的异步工作流以及未来的.NET 5.0中的基于任务的异步编程模型。但经过三篇文章后很多人对IO异步背后实现的原理以及为什么这样能提高性能很感兴趣。
634 0
16.Linux shell编程(Makefile)
(创建于 2018/2/7 上午7:43:55) MakeFile 构建工作,只需通过make一句命令就可以构建一个可执行程序,Maven ANT Gradle都是构建工具 在很多C/C++开源项目中,configure文件用来检查系统配置生成配...
814 0
一次因为文件名开头包含空格而导致FTP文件一直无法下载的悲剧!
最近负责公司研究新的多渠道打包方案,之前的打包方案太慢了,因此采用了美团的Android Signature V2 Scheme签名下的新一代渠道包打包神器 方案进行了多渠道打包。
1481 0
17.Linux shell编程(通过Makefile看Android.mk文件)
(创建于2018/2/11 上午8:12:32) Makefile文件 //递归展开式,可以引用还没有定义的变量,展开是引用时展开 1 str1=$(str2) ...
1119 0
C#编程-117:文件流FileStream类
C#编程-117:文件流FileStream类
15 0
Java对文件的追加写,模块设计
编程实践中经常需要对文件的读写,本篇文章做一个文件追加写的模块。 使用FileWriter类   (1)使用的构造函数为(参考JAVA API文档):     public FileWriter(String fileName,boolean append) throws IOException   (2)参数说明     fileName(String):要写入数据的文件名称。
759 0
+关注
黑夜路口
安卓高级工程师,目前任职于Wifi万能钥匙
152
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载