如何用makefile编译多个c文件

请问,如何用一个makefile同时编译多个c文件。比如我有三个c文件,1.c2.c3.c然后在linux下建立一个makefile。然后通过一个make命令。一下子就编... 请问,如何用一个makefile同时编译多个c文件。比如我有三个c文件,1.c 2.c 3.c然后在linux下建立一个makefile。然后通过一个make命令。一下子就编译这三个c文件。 展开
 我来答
糖糖寳寳
推荐于2017-09-10 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3964万
展开全部
假设有下面几个c++文件:
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要连接库文件
main.c 主函数, main.c 包含了两个头文件 wherewhen.h and countdown.h
1、第一种编译方法:
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可执行文件myprogram
2、第二中编译方法, 分别编译各个文件:
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
五知潮清涵
2019-03-06 · TA获得超过3835个赞
知道大有可为答主
回答量:3115
采纳率:33%
帮助的人:215万
展开全部
使用
.PHONY,
使用方法见下面描述或参考链接.
经过测试可行.
---------
phony
目标可以有依赖关系。当一个目录中有多个程序,将其放在一个makefile
中会更方便。因为缺省目标是makefile
中的第一个目标,通常将这个phony
目标叫做"all",其依赖文件为各个程序:
all
:
prog1
prog2
prog3
.PHONY
:
all
prog1
:
prog1.o
utils.o
cc
-o
prog1
prog1.o
utils.o
prog2
:
prog2.o
cc
-o
prog2
prog2.o
prog3
:
prog3.o
sort.o
utils.o
cc
-o
prog3
prog3.o
sort.o
utils.o
这样,使用"make"将可以将三个程序都生成了。d
当一个phony
目标是另一个的依赖,其作用相当于子程序,例如:
.PHONY:
cleanall
cleanobj
cleandiff
cleanall
:
cleanobj
cleandiff
rm
program
cleanobj
:
rm
*.o
cleandiff
:
rm
*.diff
----------
我测试的Makefile:
OBJS=main.o
sub.o
all
:
test
sam
.PHONY:all
test
:
$(OBJS)
gcc
-o
test
$(OBJS)
sam
:
sam.o
gcc
-o
sam
sam.o
main.o
:
main.c
sub.h
gcc
-c
main.c
sub.o
:
sub.c
sub.h
gcc
-c
sub.c
sam.o
:
sam.c
gcc
-c
sam.c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sylecn
推荐于2017-09-26 · TA获得超过2991个赞
知道大有可为答主
回答量:1169
采纳率:57%
帮助的人:706万
展开全部
用依赖,例如让all target依赖prog1 - prog3. 这样子make的时候就一起了。

#Makefile for building 3 programmings
all: prog1 prog2 prog3

prog1: 1.c
$(CC) $< -o $@

prog2: 2.c
$(CC) $< -o $@

prog3: 3.c
$(CC) $< -o $@

.PHONY: all
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-12-23 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式