makefile简便方法
我们目前知道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)
好好的东西为什么不要给它搞成怎么复杂呢?
不好意思。我是新手。谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
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)
这样才是对的
还有更简单的呢。若是有1000个*.c 文件怎么办,你一条一条的加啊。
{:3_188:}
3L说的好,对于很简单的工程可以采用LZ的做法,但是复杂庞大的工程就需要用到Makefile的变量及函数功能等处理了。
我很纳闷的是为什么楼主会有“大家不采取那中非常简便的方式”的结论,这可能只是你在学习中的感受,不是别人都在用入门级的写法。
这几天刚好在看makefile的相关知识,简略的看了一下GNU make手册,说到大的工程可以用autotools工具集哦!
1.autotools自动生存
2.make自己写
看起来要学好.只有找一家公司来学.谢谢.本人在深圳.你们呢?
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)
这样就行啦。