编译流程

预处理

gcc -E test.c -o test.i      test.c源码进行预处理,预处理后停止编译,预处理后文件体积会变大,且为文本格式

编译

gcc -S test.i  -o test.s    编译预处理的文件

汇编

gcc -c test.s -o test.o   .s转成二进制文件

链接

gcc  test.o -o test    将多个目标文件以及所需要的库文件链接生成可执行文件的过程

./test

生成静态库

动态库

gcc -shared -fPIC -o libtool.so tool.o

什么是makefile

makefile规则

makefile实例

makefile使用变量

引入其它的makefile

makefile预定义变量

makefile自动变量

make的工作流程

Android.mk

Android.mk基本格式

Android.mk编译多个共享库

Android.mk编译静态库

Android.mk使用共享库共享通用模块

在多个NDK项目间共享模块

使用预编译库

编译独立的可执行文件

注意事项

【Makefile】相关推荐

  1. 【开发日常】【Makefile】编译时如何将警告(warning)视为错误(error)?

    我们有时会遇到内核编译时警告(warning)被视为错误(error)等问题 在内核源码中,移植外部驱动模块,出现报错: error: unused variable 'xxx' [-Werror=u ...

  2. 【Makefile】Makefile与shell命令为何总是藕断丝连?

    博主最近在项目实践过程中,需要深度定制项目的Makefile,其中有些复杂的流程必须得借助shell脚本才能高效地完成,为此博主特意深入学习了在Makefile种调用shell命令的方法. 大家都知道 ...

  3. 【makefile】wildcard函数

    makefile文本处理函数 wildcard 用法 $(wildcard PATTERN...) 该函数被展开为已经存在的.使用空格分开的.匹配此模式的所有文件列表. 举例 获取工作目录下的所有.c ...

  4. 【MakeFile】Synopsys全家桶学习预备知识 · makefile教程

    本文是synopsys全家桶学习的第一篇,这个系列将按照IC设计的流程顺序学习编译仿真工具VCS,综合工具DC,参数提取工具StarRC,STA工具PrimeTime,形式化验证工具FM,布局布线IC ...

  5. 【Makefile】Makefile文件中的 .PHONY 的作用

    目录 即看即用 详细说明 即看即用 作用:告诉make,.PHONY:后面跟着的名称不是指文件名,如果makefile中xxxx 写在.PHONY:后面,那么make  xxxx 就表示执行xxxx ...

  6. 【Makefile】include执行顺序

    机器感知 一个专注于SLAM.机器视觉.Linux 等相关技术文章分享的公众号 本文来验证如下情况:include出现在Makefile的第一个目标之前的执行顺序问题 首先,先创建两个Makefile ...

  7. 【makefile】检测CC是否修改

    https://stackoverflow.com/questions/18007326/how-to-change-default-values-of-variables-like-cc-in-ma ...

  8. 【Makefile】strip

    机器感知 一个专注于SLAM.机器视觉.Linux 等相关技术文章分享的公众号 $(strip STR)  函数名称:strip.  函数功能:去掉字符串中多余的空格符(若干单词,使用若干空字符分割) ...

  9. 【makefile】Linux之Makefile(findstring)

    Date: 2017/12/31 Author:SoaringLee 目录 函数 示例: 应用: 函数 $(findstring FIND, IN)  函数名称:查找字符串函数-findstring. ...

最新文章

  1. java的sdk在哪个文件夹_我的计算机中的Java SDK文件夹在哪里? Ubuntu 12.04
  2. 遇到问题为何该自己动手
  3. python下面代码是什么_python代码下面__name__= __main__怎么使用 作用是什么?
  4. 如今全球超级计算机运算速度排名,截至2019年(或2018年),全球超级计算机运算速度排名第一的是?...
  5. 淘宝 oracle mysql_Oracle 与 MySQL 的区别-阿里云开发者社区
  6. !假如人类使用 16 进制
  7. 在XenApp如何发布SAP的客户端(上)
  8. Debian11安装VLC Media Player视频播放器
  9. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_01-自定义查询页面-服务端-Dao...
  10. php改变文件模式的函数,php chmod 函数 改变文件模式
  11. HFSS天线设计流程
  12. chart控件使用教程
  13. Android实现蝴蝶动画,抖音蝴蝶特效怎么弄的?抖音最近很火的蝴蝶特效制作|安卓手机给视频添加蝴蝶特效...
  14. 高一计算机组装与维护教学总结,计算机优秀个人教学总结
  15. monkey的基本操作命令
  16. Excel如何提取单元格中最后一次出现的数值
  17. 虚拟机VMware安装XP系统错误解决办法
  18. python做工控机_「上位机软件」工控机上位机软件的开发历程(一) - seo实验室...
  19. Excel交叉引用及其应用实例
  20. 怎样实现php伪静态,php如何用程序实现伪静态

热门文章

  1. mysql提高吞吐量_垃圾收集:提高吞吐量
  2. 参数化测试 junit_JUnit中的参数化测试运行器
  3. 只读副本和Spring Data第2部分:配置基础项目
  4. 使用React Native和Spring Boot构建一个移动应用
  5. spring 注释的作用_Spring的@Primary注释在起作用
  6. Spring应用架构
  7. 功能Java示例 第2部分–讲故事
  8. .bam.bai的意义_业务活动监视器(BAM)2.0带来的革命
  9. 使用Project Jigsaw的JDK 9 Early Access上的Eclipse IDE
  10. Java在几乎所有方面都可以胜任本机响应