Makefile的作用就是“自动化编译“

一、Makefile基本规则

下面给出几个简单实例:

第一步:分别用vim创建prog.c code.c code.h三个文件

prog.c

#include <stdio.h>
#include "code.h" int main(void)
{
int i = 1;
printf ("myfun(i) = %d\n", myfun(i));
}

code.c

#include "code.h"

int myfun(int in)
{
return in + 1;
}

code.h

extern int myfun(int);

第二步:创建Makefile文件

$vim Makefile

test: prog.o code.o
gcc prog.o code.o -o test
prog.o: prog.c code.h
gcc -c prog.c -o prog.o
code.o: code.c code.h
gcc -c code.c -o code.o
clean:
rm -f *.o test

ps:Makefile的一般写法规则:

test(目标文件):prog.o cose.o(依赖文件列表)

tab(至少一个tab的位置,不是space)gcc prog.o code.o -o test

一个Makefile文件主要含有一系列的规则,每条规则包含一下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’;一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab开头(初学者务必注意:是tab,而不是空格)

最新文章

  1. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)
  2. Maven打包程序
  3. Mysql创建新用户后无法登录,提示 Access denied for user &#39;username&#39;@&#39;localhost&#39; (using password: YES)
  4. 全景VR视频外包公司:长年承接VR全景视频外包(技术分享YouTube的360全景视频)
  5. DDD:群里关于验证的结论
  6. 【BZOJ】2818: Gcd(欧拉函数/莫比乌斯)
  7. Linux下检查是否安装过某软件包
  8. Apache 编译安装
  9. JqueryMobile新手问题大全
  10. [DB][mybatis]MyBatis mapper文件引用变量#{}与${}差异
  11. Operating System 概述和学习图
  12. PHP访问接口获取数据
  13. Markdown软件推荐--Typora
  14. DUMP3 企业级电商项目
  15. Coursera, Deep Learning 1, Neural Networks and Deep Learning - week2, Neural Networks Basics
  16. 论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)
  17. Linux命令更新系统时间,更新所有文件的时间(转)
  18. mysql新建数据库、新建用户及授权操作
  19. Vue.js入门系列教程(二)
  20. Socket网络编程--聊天程序(5)

热门文章

  1. [K/3Cloud]将JSON字符串反序列化为C#动态对象
  2. 洛谷 P1404 平均数
  3. Servlet的文件上传
  4. Windows Socket IO 模型
  5. 一步步搭建java信息管理系统00 - 前言
  6. spring mvc 访问静态资源404
  7. 在Windows上安装Nexus
  8. Kafka跨集群同步工具——MirrorMaker
  9. android深入之设计模式(一)托付模式
  10. MySQLi 和 PDO 连接 MySQL