翻了几页《跟我一起写Makefile》开始写自己的第一个“hello world”。
实验对象是笔者的bounce小程序,代码请参阅本人博文《弹球游戏》。包含三个文件:bounce.c 、bounce.h、set_ticker.c。对makefile来说足够简单。
在当前目录下
vi makefile
新建一个文件,文件名也可以是Makefile。但是不要觉得makeFile也可以,当然haha这样的文件名更不可以。make时会报一个错然后stop。
我们文件的内容将是这样
objects = bounce.o set_ticker.o
bounce : $(objects)
cc -o bounce $(objects) -lcurses
bounce.o : bounce.h
.PHONY : clean
clean :
-rm $(objects)
怎么理解这段内容呢?
objects是一个变量名,类似C里面的宏,而$(objects)是对这个变量的引用。
第一行object : 之后是目标文件要依赖的文件,注意这里只要添加自己的文件就好了,不要试图添加标准库文件,不然会报一个错。
第二行 bounce是目标文件名,这里是最终要得到的可执行文件的文字。
下一行 是一个shell命令,注意命令行必须以tab键开头,然而非命令行则不需要。一般 cc -o bounce $(objects)足够,但这里我使用了非标准库curses.h,所以需要加上 -l curses。您如果使用了其它第三方库,记得加上-l
好了,bounce.o : 这一行后面是,它的依赖文件。
.PHONY : clean行,.PHONY表示后面的是一个伪目标文件,按命名的字面意思 clean 是来清除中间的文件的,但make命令不会执行它,需要使用make clean 命令。
clean : 及下一行是 clean 的内容,无需多讲。
另外,与shell脚本(或python)一样,注释行以 # 开头。
make
然后我们的 bounce就生成了。
make clean
我们可以清除几个.o文件。
好今天的hello world 到此结束,谢谢。