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)
相关文章
|
30天前
|
Shell
Shell 文件包含
10月更文挑战第5天
33 4
|
11天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
21天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
67 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
29天前
|
Shell
Shell编程(下)
Shell编程(下)
85 1
|
29天前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
37 1
|
30天前
|
Linux C++
Linux c/c++之makefile的基础使用
Linux下C/C++项目中makefile的基本使用,包括基础、进阶和高级用法,以及如何创建和使用makefile来自动化编译过程。
14 0
Linux c/c++之makefile的基础使用
|
1月前
|
Shell Linux 开发工具
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
61 12
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
6月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
107 0