二进制分析
未读写个简单的Makefile做开场白
需要说明一下,文档目录结构是用户目录HOME下有src incl bin lib。
src:源码
incl:头文件
bin:执行码
lib:静态/动态库
这是大家最常见的Linux编程目录结构,以下代码编译都是依据这个结构。
简单的Makefile代码
12345hello:hello.c gcc -I${HOME}/incl -c hello.c gcc -o hello hello.o rm -f hello.o mv hello ${HOME}/bin
没接触过Makefile的同学肯定能看出,这段代码不就是把编译、链接、删除、移动写成shell脚本执行吗?没错的,把第一行去掉,其他代码粘贴到shell脚本里同样可以编译成功,一点问题都没有。
Makefile结构说明
Makefile里主要包含了五个东西:变量定义、显式规则、隐晦规则、文件指示和注释。
1、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点像C语言中的宏,当Makefile被执行时,其中的变量都会被扩展 ...