免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3197 | 回复: 9
打印 上一主题 下一主题

makefile简便方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-02 12:33 |只看该作者 |倒序浏览
我们目前知道make file有很多种写法,我想知道的是:为什么大家不采取那中非常简便的方式呢?

main:main.o mytool1.o mytool2.o

        gcc -o main main.o mytool1.o mytool2.o

main.o:main.c mytool1.h mytool2.h

        gcc -c main.c

mytool1.o:mytool1.c mytool1.h

        gcc -c mytool1.c

mytool2.o:mytool2.c mytool2.h

        gcc -c mytool2.c


clean:

        rm -f *.o main.exe *.*.bak *.bak

这个看起来清楚。也非常好理解.

为什么很多人希望有很多简便的方式呢?如下

CC = gcc

OBJ = main.o mytool1.o mytool2.o


main: $(OBJ)

        $(CC) -o $@ $^

main.o: main.c mytool1.h mytool2.h

        $(CC) -c $

mytool1.o: mytool1.c mytool1.h

        $(CC) -c $

mytool2.o: mytool2.c mytool2.h

        $(CC) -c $


.PHONY: clean

clean:

        rm -f main $(OBJ)



好好的东西为什么不要给它搞成怎么复杂呢?

不好意思。我是新手。谢谢

论坛徽章:
0
2 [报告]
发表于 2011-06-02 19:06 |只看该作者
CC = gcc

OBJ = main.o mytool1.o mytool2.o


main: $(OBJ)

        $(CC) -o $@ $^

main.o: main.c mytool1.h mytool2.h

        $(CC) -c $<

mytool1.o: mytool1.c mytool1.h

        $(CC) -c $<

mytool2.o: mytool2.c mytool2.h

        $(CC) -c $<


.PHONY: clean

clean:

        rm -f main $(OBJ)


这样才是对的

论坛徽章:
0
3 [报告]
发表于 2011-06-03 09:49 |只看该作者
还有更简单的呢。若是有1000个*.c 文件怎么办,你一条一条的加啊。

论坛徽章:
0
4 [报告]
发表于 2011-06-03 09:50 |只看该作者
{:3_188:}

论坛徽章:
0
5 [报告]
发表于 2011-06-03 10:00 |只看该作者
3L说的好,对于很简单的工程可以采用LZ的做法,但是复杂庞大的工程就需要用到Makefile的变量及函数功能等处理了。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
6 [报告]
发表于 2011-06-03 10:30 |只看该作者
我很纳闷的是为什么楼主会有“大家不采取那中非常简便的方式”的结论,这可能只是你在学习中的感受,不是别人都在用入门级的写法。

论坛徽章:
0
7 [报告]
发表于 2011-06-04 14:39 |只看该作者
这几天刚好在看makefile的相关知识,简略的看了一下GNU make手册,说到大的工程可以用autotools工具集哦!

论坛徽章:
0
8 [报告]
发表于 2011-06-06 10:38 |只看该作者
1.autotools自动生存
2.make自己写

看起来要学好.只有找一家公司来学.谢谢.本人在深圳.你们呢?

论坛徽章:
0
9 [报告]
发表于 2011-06-07 16:39 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2011-06-07 22:45 |只看该作者
CC = gcc

OBJ = main.o mytool1.o mytool2.o


main: $(OBJ)

        $(CC) -o $@ $^

main.o:mytool1.h mytool2.h

mytool1.o: mytool1.h

mytool2.o:mytool2.h

.PHONY: clean

clean:

        rm -f main $(OBJ)


这样就行啦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP