如何编写makefile文件
来源:互联网 发布:如何删除部落冲突数据 编辑:程序博客网 时间:2024/05/24 04:07
Makefile工程管理器
已有Addressbook.c main.c Addressbook.h 文件
建立vim Makefile 文件 //M要大写
写Makefile具体内容
在终端是输入make //相当于在终端输入gcc Addressbook.c main.c
Makefile 文件相当于经历了 预处理、编译、汇编、链接这四个过程
每次在终端输入make ,只编译改动过的文件,如果未改动,在终端输入make时会显示最新的,然后输入./a.out即可
//编译过程
1.预处理 (宏替换)
命令 gcc -E hello.c -o hello.i //一般用i,换成j也行
生成的hello.i 文件中 包括了 头文件#include <stdio.h>的内容
如果hello.c 中包括了#define PI 3.1415 ,那么生成的hello.i文件中的PI都被替换为 3.1415
2.编译(生成汇编文件)
gcc -s hello.c -o hello.s
3.汇编(二进制文件)
gcc -c hello.c -o hello.o
4.链接
gcc hello.c
在.c文件中用到的函数例如printf()函数,要去函数库中找到匹配函数,生成可执行文件
//从下往上
Addressbook: main.o Addressbook.o
gcc main.o Addressbook.o -o Addressbook //连接
main.o : main.c AddressBook.h
gcc -c main.c -o main.o
Addressbook.o : AddressBook.c AddressBook.h
gcc -c AddressBook.c -o AddressBook.o
.PYONE: clean
clean:
rm -rf *.o //删除所有.o文件
1. .PYONE: clean
clean:
rm -rf *.o
这三句加上可以删除所有.o文件
具体实现: 在终端上输入make clean // make代表首先要找到是否有Makefile这个文件
2. Addressbook.o : AddressBook.c AddressBook.h
Addressbook.o是目标文件,AddressBook.c AddressBook.h是源文件
3.Makefile 可以包含多个.c /.h文件,每个.c以及这个.c文件里所包含的.h头文件都要写成源文件,然后生成目标文件(如果该文件用到了数据库以及线程,则后面加上-lpthread -sqlite3)
例如Addressbook.o : AddressBook.c AddressBook.h -lpthread -sqlite3
4. ./Addressbook 类似于./a.out
5.gcc / rm -rf *.o前添的是tab键(不是空格)
6. //给Makefile文件 换名字
mv Makefile newname //改文件名
make -f newname //若文件名不为Makefile,则不能用make直接编译,而要用该语句
make -f newname clean //是makefile1文件的make clean命令
7.带变量的Makefile
obj: main.o Addressbook.o
Addressbook:$(obj)
//带有变量可少写.o文件,使书写简洁
gcc $(obj) -o Addressbook
main.o : main.c AddressBook.h
gcc -c main.c -o main.o
Addressbook.o : AddressBook.c AddressBook.h
gcc -c AddressBook.c -o AddressBook.o
.PYONE: clean
clean:
rm -rf *.o //删除所有.o文件
- 如何编写Makefile文件
- 如何编写makefile文件
- 如何编写makefile文件
- makefile多文件如何编写
- 教会你如何编写makefile文件
- 教会你如何编写makefile文件
- 教会你如何编写makefile文件
- 教会你如何编写makefile文件
- linux下如何编写makefile文件
- c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- 如何编写Makefile(2)
- 如何编写makefile
- 如何自己编写Makefile
- 如何编写makefile
- 如何自己编写Makefile
- 如何自己编写Makefile
- Linux 常见文件后缀解压命令
- 微信开发刷新网页code过期
- git 常见问题 及 操作
- Mybatis总体架构分析
- 分析一个通用的rtsp server实现过程基础模块
- 如何编写makefile文件
- python中set和list的操作
- 重建二叉树
- 日常学习2017.8.5
- xml基础及解析案例
- Netty网络聊天室之会话管理
- POJ1236---Network of Schools (强连通分量,缩点,Tarjan算法)
- 传智_Springmvc+Mybatis由浅入深全套视频教程(燕青)-mybatis笔记(两天)(2017年8月5日16:09:55)
- Curling 2.0