简单的makefile编写

       
   CC ?= gcc
  
  CFLAGS = -Wall -I/home/coc/target/sysroots/corei7-64-poky-linux/usr/include/libxml2
  LDFLAGS = -L/home/coc/target/sysroots/corei7-64-poky-linux/usr/libs
  LIBS = -lxml2
  
  object = cJSON.o xmltojson.o
  xmltojson : $(object)
     ${CC} -o xmltojson $(object) -lm `pkg-config --cflags --libs libxml-2.0`
 
  cJSON.o: cJSON.c
      ${CC} -c cJSON.c
 
  xmltojson.o: xmltojson.c
      ${CC} -c xmltojson.c `pkg-config --cflags --libs libxml-2.0`
 
  clean:
           rm xmltojson $(object)

我有一个需要,想要写一个xmltojson转化的程序,于是想要写一个makefile来试验一下,参照《跟我一起写makefile》,
结构并不复杂,有两个C文件,两个头文件,以及一个供程序启动时的动态库,首先指定编译器,cc ?=gcc 假如不存在的话
则使用gcc 编译器,否则使用系统默认编译器.CFLAGS 是用来说明动态库的头文件路径,LDFLAGS是指动态库的库文件路径,
LIBS则是指链接时具体的库.
我用object来指定中间文件,通过中间文件来生成具体的可执行文件,xmltojson 是具体的可执行文件的名字,假如$(object)的
日期比xmltojson的新,那么就会执行后面所执行的命令来生成xmltojson文件。如果xmltojson所依赖的.o中间文件并不存在,那么
就会执行后面所进行的操作。
但是我并没有使用CFLAGS 和 LDFLAGS,而是通过 pkg-config -cflags --lib libxml-2.0来查找具体的库和头文件路径,并加以
链接。但是都是一样,有兴趣可以试一下。

最后,定义clean规则来删除可执行文件和中间文件。

类似于clean规则一样,我们还可以添加类似

install:

           之类的命令来个性化定制我们的makefile


假如想要生成两个可执行文件,那么需要前面设置all: exe1 exe2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值