栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

makefile ----加强版

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

makefile ----加强版

文章目录
  • 前言
  • 一、文件
  • 二、makefile的升级


前言

本文所写代码是基于linux下的编程

一、文件

a.c

#include 
#include "a.h"

int main()
{
	printf("hello, world!n");
	printf("A= %dn", A);
	test_fun();
	return 0;
}

b.c

#include 
#include "a.h"
int test_fun()
{ 
	printf("it is Bn");
	return 0;
} 

a.h

#define A 1
int test_fun();
二、makefile的升级

上一个引入的makefile还是有缺点的,需要进行修改:
makefile

test:a.o b.o
	gcc -o test a.o b.o

a.o:a.c a.h

%.o : %.c 
	gcc -c -o $@ $<
	

% : 通配符,表示所有的.o文件都依赖于.c文件
$@ :表示当前的目标 也就是%.o
$< : 表示当前的第一个依赖.也就是%.c
$^ : 表示所有的依赖

由于a.o还需要依赖于a.h,所以添加多一行a.o:a.c a.h

这样子做的好处:

我们不需要把每一个.c的文件的文件名都写出来,直接用通配符%代替。

修改a.h后.他会重新对a.c进行预处理,编译,汇编,b.c没有修改不会在进行预处理,编译,汇编。

缺点:

如果有上千万个文件,那么我们需要每个文件去查看并找出他相对于包含的.h文件。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号