makefile 学习笔记1
2016-04-21 14:19
274 查看
makefile 的语法结构及其遵循的三要素:
目标:依赖
命令
“目标” 可以看成是是最终想得到产物
“依赖” 可以看成是被加工的原材料
“命令”可以看成是加工手续
下面举个简单的例子。
假如在 aa目录下有一个main.c 文件想通过gcc指令生成可执行文件并另取名为main。下面来写个makefile
main:main.o
gcc main.o -o main
main.o:main.c
gcc -c main.c
在终端 make一下后,会生成 main
如果aa目录下有main.c add.c sub.c mul.c div.c 在main.c中调用了add.c sub.c mul.c div.c
等C文件里定义的函数 。现在想通过make指令生成可执行文件并重命名为main。makefile的写法为
main:main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o main
main.o:main.c
gcc -c main.c
add.o:add.c
gcc -c add.c
sub.o:sub.c
gcc -c sub.c
mul.o:mul.c
gcc -c mul.c
div.o:div.c
gcc -c div.c
或者写成下面这样
main:main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o main
main.o add.o sub.o mul.o div.o:main.c add.c sub.c mul.c div.c
gcc -c main.c add.c sub.c mul.c div.c
两者效果一样。
目标:依赖
命令
“目标” 可以看成是是最终想得到产物
“依赖” 可以看成是被加工的原材料
“命令”可以看成是加工手续
下面举个简单的例子。
假如在 aa目录下有一个main.c 文件想通过gcc指令生成可执行文件并另取名为main。下面来写个makefile
main:main.o
gcc main.o -o main
main.o:main.c
gcc -c main.c
在终端 make一下后,会生成 main
如果aa目录下有main.c add.c sub.c mul.c div.c 在main.c中调用了add.c sub.c mul.c div.c
等C文件里定义的函数 。现在想通过make指令生成可执行文件并重命名为main。makefile的写法为
main:main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o main
main.o:main.c
gcc -c main.c
add.o:add.c
gcc -c add.c
sub.o:sub.c
gcc -c sub.c
mul.o:mul.c
gcc -c mul.c
div.o:div.c
gcc -c div.c
或者写成下面这样
main:main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o main
main.o add.o sub.o mul.o div.o:main.c add.c sub.c mul.c div.c
gcc -c main.c add.c sub.c mul.c div.c
两者效果一样。
相关文章推荐
- 比较Cocos2d-x v2.x与v3.x的截图功能
- C# 访问控制符 0006
- linux Makefile 博客汇集
- 在centos 6.7 下搭建ngnix服务器
- shell脚本_Hello world
- 中国各大城市用日语怎么说
- 支付宝架构师:从工程师到架构师的成长之路
- C#反转字符串
- keepalived单实例与多实例
- 对于事务,无法在数据库 '' (数据库 ID 为 )的页 重做日志记录页: LSN =类型 = 2日志:
- linux自学笔记(2)
- 自定义java泛型
- Android多媒体技术之音频播放
- 剑指offer面试题 链表中倒数第K个结点
- COCOS2DX中的selector机制
- uva10003
- android studio 代码混淆如何忽略第三方jar包
- 线程的创建方式问题
- 如何在 CentOS 7 中添加新磁盘而不用重启系统
- 用cargo插件部署war包,并支持debug