linux系统下这个makefile 怎么只能编译一个文件

它只能编译产生l1.o其它的却不能编译... 它只能编译产生l1.o 其它的却不能编译 展开
 我来答
todd_lau
2011-04-29 · TA获得超过170个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:128万
展开全部
当你不指定make的目标,也就是光输入make,那么它默认只构建第一个目标,也就是l2.o
所以你应该在makefile最开始的地方加一句:
all: l1.o l2.o l3.o
这种方法还是不够好,建议另一种方法,也就是%规则:
OBJS:=l1.o l2.o l3.o
all: $(OBJS)

%.o: %.c
gcc -c $< -o $@
# 注意上一行中gcc前面的是TAB不是空格

.PHONY all
编码艺术家
2011-05-06 · 超过26用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:35.1万
展开全部
你看,l2.o 依赖于 l1.c 接着又依赖与 l2.c,其实这么写是不行的,如果你这么谢了,也是生成l2.o文件。
如果你想这几个都编译的话,你可以这样写:
{{{class="makefile"
.PHONY: all
all: l2.o l3.lo

l2.o: l2.c l1.o
gcc -o $@ -c $^
l1.o: l1.c
gcc -o $@ -c $^
l3.o: l3.c
gcc -o $@ -c $^
}}}

这样不知道是否能够回答你的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
koko200147
2011-04-29 · TA获得超过282个赞
知道小有建树答主
回答量:600
采纳率:0%
帮助的人:287万
展开全部
你还是先去看makefile的编写规则吧。网上有的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式