main.out:max.o min.o main.c
gcc max.o min.o main.c -o main.out
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
记录
# this is make file
main.out:max.o min.o main.c
gcc max.o min.o main.c -o main.out
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
运行结果:
flys@ubuntu:~/Fly/Test/demo1$ make
gcc max.o min.o main.c -o main.out
flys@ubuntu:~/Fly/Test/demo1$ ./main.out
the max value is 33
the min value is 22
makeFile文件编写:vi Makefile;上面每行缩进都是一个tab。
写完后用make指令直接编译。
Make工具(Makefile文件)
意义
make无论是在Linux和Unix中都是非常重要的编译
make工具可以将大型的开发项目分成若干个模块
make工具可以很清晰很快捷的整理源文件
make工具在内部也是用的gcc
操作
apt-get update +apt-get install 安装软件
打开 vi Makefile
"#"注释
文件名+‘’:‘’的话就是这个文件是有什么组成的
Makfile文件里的文件都是编译好的,顺序都是从上往下
修改后的Makefile文件如果不影响源代码的话是不重新编译的
源文件编译的时候注意缩进,最好用Tab ,不然就是八个空格的空间
1、rm *.o // 移除所有.o文件;
2、make 工具可以将大型的开发项目分成若干个模块,清晰快捷整理源文件;约定写一个文件:vi Makefile#M大写;在大项目中 如果每次编译都需要将全部小文件编译一次可能需要很久很久。make工具让我们每次输入make,只会自动处理需要修改的地方;
3、Makefile文件注释用 “#”;
hello.out:max.o min.o hello.c //max.o和min.o hello.c一起生成a.out文件
gcc max.o min.o hello.c(行代码前8个空格或代表8个空格的tab键)
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
执行make
hello.out:max.o min.o hello.c -o hello.out
4、gcc -c 文件名 -o 命名.o //编译文件,生成.o文件
gcc -c 文件名 -o 命名.out //编译文件,生成.out执行文件
make.
makefile怎么写
make 可以将大型的开发项目分成若干个易于管理的模块
make工具可以很清晰和很快捷的整理源文件
大型开发项目文件多,用gcc太不方便,make在内部也是使用gcc
检查有没有装make:make -v
如果没有装:sudo apt-get install make
约定写一个文件:vi Makefile#M大写
截图说明:已经有了max.o min.o 下一次编译的时候就不用全部从.c文件开始编译
在大项目中 如果每次编译都需要将全部小文件编译一次可能需要很久很久。make工具让我们每次输入make,只会自动处理需要修改的地方
# this is make file , must use tab hello.out:max.o min.o hello.c gcc max.o min.o hello.c -o hello.out max.o:max.c gcc -c max.c min.o:min.c gcc -c min.c
gcc -c 文件名 -o 命名.o 编译文件,生成.o文件 gcc 文件1.o 文件2.o ... 文件n.c 合并生成.out文件 cat 文件名 查看该文件 rm *.文件格式 删除目录下该格式的所有文件 如:rm *.out //删除所有.out文件
rm *.o 删除所有的.o文件
make把大型的开发项目分成若干个易于管理的模块
检查系统有没有装make >> make -v
若没有安装,则 >> sudo apt-get install make
创建make文件 >> vi makefile
make文件注释用 “#”
hello.out:max.o min.o hello.c //max.o和min.o hello.c一起生成hello.out文件
gcc max.o min.o hello.c(8个空格或代表8个空格的tab键)
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
执行make
hello.out:max.o min.o hello.c -o hello.out
123456
MakeFile的用法
Makefile文件的间隔必须用Tab键而不是4个空格
自顶向下的设置编译顺序以及规则
rm *.o 删除所有的.o文件
make把大型的开发项目分成若干个易于管理的模块
nake -v 检查make是否存在
apt-get install make
Makefile
注释#...
hello.out:max.o min.o hello.c //max.o和min.o hello.c一起生成hello.out文件
gcc max.o min.o hello.c(8个空格或代表8个空格的tab键)
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
执行make
hello.out:max.o min.o hello.c -o hello.out
makefile
make工具很清晰和很快捷到整理源文件
约定Makefile 文件
#thiis is make file
hello.out
rm *.o
#include 预处理指令
.o 是机器码
.h 头文件
hello.out: max.o min.o hello.c gcc max.o min.o hello.c -o hello.out max.o:max.c gcc -c max.c min.o:min.c gcc -c min.c
make -v显示信息
cc -c a.c生成二进制文件
make 执行Makefile文件
-o指定生成文件
rm *.o 删除所有.o文件;
安装make:apt-get install make;
相关命令和文件组织结构
makefile:
#this is makefile//注释#
可执行文件.out:要连接的文件.o .c等
tab键 gcc .o .c
make
rm *.o 表示删除所有.o文件(正则表达式)
vi Makefile (注释用#)----编译修改过的部分
输出文件:源文件
一个tab gcc命令
从上到下逐层求精
最后用make命令执行
问答区的两个Q&A
make工具的作用
make本身的功能是:可以按文件的新旧日期、按照一定的规则(写于makefile中)来执行指定的操作,这些操作通常就是调用gcc来编译代码。当然你也可以写makefile来让make干别的事情。
这东西就是为了方便开发者,实际上有一系列GNU工具来干这些工作,它们统称为autotools,包括 autoconf, automake ...。这些工具可以按照机器上的开发环境设置相应的编译参数、自动生成相应的makefile、最后make一下就可以编译整个工程了。 可以说是干了IDE的活。
gcc-c 参数的意义
-c 参数是将源代码编译成“目标文件 .o”,不进行连接
后面多个目标文件可以通过 -o链接成可执行文件。
不使用这个参数时gcc会直接进行 编译 链接,生成可执行文件。