Linux GCC make文件的写法--总结版

本文详细介绍了一个包含多个源文件项目的Makefile配置方法。通过具体实例解释了如何设置make和gcc的搜索路径,包括如何使用vpath变量来指定头文件和源文件的位置。此外,还提供了一个通用的Makefile模板,只需修改少量变量即可快速应用于其他项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录结构为:

inc/hello.h

src/hello.c

main/main.c

Makefile

文件内容为:

hello.h:

hello.c:

main.c:

Makefile:

首先,需要明确一点,这里面有两个执行程序,一个make,一个gcc,在Makefile里这两个的语句也是分别占1行的。

这里最主要的是路径的问题,因为不同的文件在不同的目录下面,所以要告诉程序文件所在的路径,而又有两个程序需要告知,而两个程序告知的方式又不同,所以这个问题一开始困扰了我好久,在好多好心人的帮助下,终于明白了一点。

make的搜索路径设置方式为:vpath或VPATH,这个在许多资料里都讲过,而且这个是所有文件都可以设置的,.c, .h还有其它的都可以。

gcc的搜索路径设置方式为(这个应该是只能设置头文件的搜索路径,因为是include):-I inc,

而.c文件的搜索路径似乎不能设置,而只能在cc -c path/%.c中显示的写出,个人这么理解。

而有一种方式是可以不用显示的写出的,而且也不用吧,%.c也写出,就是用make的自动化变量

“$<”和“$@”则是自动化变量,“$<”表示所有的依赖目标集(%.c),“$@”表示目标集(%.o)。

(是make的变量,文件在当前目录没有找到的话,会自动搜索vpath中设置的路径,如果不用这个那么如果.c在不在当前目录下,-c后面要指明目录位置,用这个后,可以在vpath中指明即可)

因为是make的变量,所以用vpath设置的make的路径在这里面就起作用了,不用再显示的指明.c的路径了。而且这样写起来,更简洁。

 

最近在看《深入理解计算机系统》网上下载的代码都是在Linux上跑的,呵呵,所以得自己写Makefile,所以,研究了一下,终于整明白了一点了,呵呵~~~

下载的代码用这个Makefile文件可以很方便的编译:

只需要修改path和app字符串即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值