[Linux]Makefile入门
来源:互联网 发布:mac怎么关掉程序快捷键 编辑:程序博客网 时间:2024/04/28 02:07
转自:
http://www.cnblogs.com/little221/archive/2012/12/02/2798401.html
关于make命令,执行make命令的时候,系统会在当前目录下找名为Makefile或makefile的文件进行编译,如果你的makefile是别的名字的话,可以使用make –f filename来指定你的makefile。
直接写一个简单的makefile吧:
假设有一个源文件:main.c
那么用gcc编译它的命令是:gcc main.c –o main
我创建一个名为makefile的文件,makefile的基本格式为“目标:依赖 命令”
makefile内容为:
main : main.c
gcc main.c –o main
在终端执行make命令就可以得到main文件了
假设我有a.c,b.c, main.c三个源文件,最终要编译成一个名为main的可执行文件
则makefile内容为
main : a.o b.o main.o
gcc a.o b.o main.o -o main
main.o : main.c
gcc -c main.c
b.o : b.c
gcc -c b.c
a.o : a.c
gcc -c a.c
# 用".PHONY {目标名}"定义一个伪目标
# 用"make {目标名}"执行该伪目标
.PHONY : clean
clean :
@rm -f main *.o
@echo 'clean'
此时执行make命令,终端会显示系统执行的每条命令,如果你不想系统显示它执行的命令,在每条命令的前面加上“@”即可。
如果我想清除掉我编译后的文件,可以rm命令,当然我们也可以清除的功能写入到makefile里边。
makefile提供了一个伪目标的功能,可以为你的makefile提供额外的功能。
下面是提供了clean功能的makefile
main : a.o b.o main.o
@gcc a.o b.o main.o -o main
@echo ok
@gcc -c main.c
b.o : b.c
@gcc -c b.c
a.o : a.c
@gcc -c a.c
# 用".PHONY {目标名}"定义一个伪目标
# 用"make {目标名}"执行该伪目标
.PHONY : clean
clean :
@rm -f main *.o
@echo clean
执行make clean即可进入clean的功能
此外,makefile提供了系统默认的自动化变量
$^:代表所有依赖文件
$@:代表目标
$<:代表第一个依赖文件
所以我们可以用
gcc $^ -o $@
代替刚刚makefile中的
gcc a.o b.o main.o -o main
- 【Linux C】Makefile入门
- Linux makefile 入门实例
- [Linux]Makefile入门
- linux makefile入门简介
- linux下 makefile快速入门
- linux设备驱动makefile入门解析
- linux设备驱动makefile入门解析
- linux设备驱动makefile入门解析
- linux设备驱动makefile入门解析
- linux设备驱动makefile入门解析
- Linux下Makefile快速编写入门
- linux设备驱动makefile入门解析
- linux 下makefile的入门学习
- linux设备驱动makefile入门解析
- linux下使用Makefile编译程序入门介绍
- Linux下Makefile快速编写入门
- linux设备驱动makefile入门解析
- 编写linux入门驱动程序的 Makefile文件格式
- The House Of Santa Claus(dfs)
- Linux中tar的用法总结
- hdu 1106 排序 20140805.cpp
- 计算CRC16
- TCP与UDP在socket编程中的区别
- [Linux]Makefile入门
- Transfer Learning 资料
- 2014 Multi-University Training Contest 5 HDOJ 4920 Matrix multiplication
- UVA 12186 - Another Crisis(树形DP)
- 关于NSDate于NString的转换
- Cocos2d-x3.1中C++11强枚举类型
- JAVA和C++的区别
- 总结
- 2的32次方