Makefile使用

在Shell脚本中使用make命令来进行编译,尤其在C开发中,make命令通过makefile文件中描述源程序之间的依赖关系进行自动编译;makefile文件是按照规定格式编写,需说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系;很多大型项目的编译都是通过 Makefile 来组织的。

首先查看是否安装了 make

make -v

 出现:

GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

 

代表安装成功了。

清理一下.o文件:

rm *.o

 

然后打开Makefile 注意首字母要大写

vi Makefile

然后写入依赖关系

#this is make fike 代表注释内容
a.out:2.o 3.o 1.c #可执行文件:由哪些文件依赖
        gcc 2.o 3.o 1.c -o main.out #执行gcc命令 一定要用编译器里的Tab否择会出错
2.o:2.c #目标代码文件:由.c文件生成
        gcc -c 2.c
3.:3.c
        gcc -c 3.c

 

保存退出,执行make

dacui@ubuntu:~/Desktop/study$ make
gcc -c 2.c
cc    -c -o 3.o 3.c
gcc 2.o 3.o 1.c -o main.out

 

ls查看下文件

1.c  2.c  2.h  2.o  3.c  3.h  3.o  a.out  main.out  Makefile

 

执行a.out /main.out

dacui@ubuntu:~/Desktop/study$ ./main.out
num=:10 min=1
dacui@ubuntu:~/Desktop/study$ ./a.out
num=:10 min=1

结果是一样的

 

posted @   北ღ冥  阅读(179)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示