Makefile文件

本文介绍了在Linux环境下,如何使用GCC和Makefile进行多文件工程的编译。通过具体的工程例子,详细解释了手动编译的过程以及Makefile的编写方法,包括规则的书写、目标、依赖项、文件的时间戳等关键概念。

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

使用GCC的命令行进行程序编译在单个文件下是比较方便的,当工程中的文件逐渐增多,甚至变得十分庞大的时候,使用GCC命令编译就会变得力不从心。Linux中的make工具提供了一种管理工程的功能,可以方便地进行程序的编译,对更新的文件进行重新编译。

一.一个多文件的工程例子

 工程代码分别存放在add/add_int.c,add/add_float.c,add/add.h,sub/sub_int.c,sub/sub_float.c,sub/sub.h,main.c中。

 

二.多文件工程的编译 

多文件工程编译成可执行文件有两种方法,一种是命令行操作,手动输入将源文件编译成可执行文件;另一种是编写Makefile文件,通过make命令将多个文件编译成可执行文件。

1.命令行编译程序

将此文件编译成可执行文件cacu,如果用gcc进行手动编译是比较麻烦的。例如,下面的编译方式每行编译一个C文件,生成目标文件,最后将5个目标编译成可执行的文件。

$gcc -c add/add_int.c -o add/add_int.o         (生成add_int.o目标函数)
$gcc -c add/add_float.c -o add/add_float.o     (生成add_float.o目标函数)
$gcc -c sub/sub_int.c -o sub/sub_int.o         (生成sub_int.o目标函数)
$gcc -c sub/sub_float.c -o sub/sub_float.o     (生成sub_float.o目标函数)
$gcc -c main.c -o main.o                       (生成main.o目标函数)
$gcc -o cacu add/add_int.o add/add_float.o sub/sub_int.o sub/sub_float.o main.o    (链接生成cacu)

或者使用gcc的默认规则,使用一条命令可直接生成可执行文件cacu:

$gcc -o cacu add/add_int.c add/add_float.c sub/sub_int.c sub/sub_float.c main.c

2.多文件的Makefile

3.多文件的编译 

 三.Makefile的规则

 1.规则的书写

2.目标 

3.依赖项 

 4.规则的嵌套

5.文件的时间戳 

6.执行的规则 

7.模式匹配 

四.Makefile中使用变量 

 五.搜索路径

 六.递归make

 1.递归调用的方式

 2.总控Makefile

 

3.子目录Makfile的编写 

七.Makefile中的函数 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值