使用makefile分别编译一些小程序

最近在学GTK,从网上找了很多小例子,都放在了一个目录里,有的测试字体,有的测试文本视图,不一而足。偏偏编译这些例子的命令行,打起来比较麻烦,记起来也不容易,这时我就又想起了makefile。

用makefile分别编译这些例子,用到哪个编译哪个,就方便多了。这样的makefile怎样写呢?

比如有helloworld.c、font.c、textview.c、font1.c几个例子,我写的makefile如下:

lgtk3=`pkg-config --cflags --libs gtk+-3.0`

help:Makefile
	@echo make hello
	@echo make font
	@echo make textview
	@echo make font1

hello: helloworld.c
	gcc -o $@ $^ $(lgtk3)

font: font.c
	gcc -o $@ $^ $(lgtk3)

textview: textview.c
	gcc -o $@ $^ $(lgtk3)

font1: font1.c
	gcc -o $@ $^ $(lgtk3)

用的时候,如果只打make命令,就会显示帮助信息。如果想要编译helloworld.c,就使用make hello,其它依次类推。

$@表示冒号前面的内容,$^表示冒号后面的内容。

lgtk3是一个变量,也可以理解成是一个宏定义,$(lgtk3)就是把这个变量(或宏定义)代入到命令行中。

比如make hello时,执行的命令就是:

gcc -o hello helloworld.c `pkg-config --cflags --libs gtk+-3.0`

要注意的是每个@echo和gcc之前的缩进,必须使用一个tab字符,不能用多个空格替代。这是硬性约定,不存在为什么的问题。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值