7.Linux:批处理:makefile集成编译(原创)

批处理:makefile集成编译

1:默认:执行make————自动查找“makefile”

   在Windows下面,.c源程序编译生成.obj目标文件在经过链接生成.exe可执行文件

   但是在Linux下面,.c源程序编译生成.o文件

2:声明变量OBJS:(其中vHHV.c与makeframe.c为其中程序包含头文件.h)

   OBJS=vHHV.o  makeframe.o 

   CC=gcc   //将gcc命令赋给CC

   vHHV: $(OBJS)

         $(CC)  -ovHHV  $(OBJS)

   vHHV.o: vHHV.c  vHHV.h

   makeframe: $(OBJS)

              $(CC)-o makeframe $(OBJS)

   makeframe: makeframe.cmakeframe.h

3:讲很多道理都不如说实例证明(依葫芦画瓢):

   建立文件:#vi filename.mk(文件名字可以随意,不过编译时要一致)

   OBJS=main.o  ReadData.o  BrowseData.o 

   CC=gcc

   test:$(OBJS)

       $*(CC)   -otest  $(OBJS)     //特别注意本行之前有一个TAB键的空格,一般定义为四个空格键;test为执行文件名,可以任意取名字,编译时保持一致

   main.o:main.c

       $(CC)   -cmain.c      //-c中c为小写,本行之前有一个TAB键

   ReadData.o:ReadData.c  readdata.h

       $(CC)   -c ReadData.c  //注意TAB键空格

   BrowseData.o:BrowseData.c  browsedata.h

       $(CC)   -c BrowseData.c   //注意TAB键空格

   clean:

       rm  *.o  test    //**本行前面有一个TAB键空格;本行用与执行删除命令,方便重新编译

  

   1):执行:

   #make -f filename.mk

   #./test      //**test为执行文件名

  

   2):如果要执行clean:

   #make -f filename.mkclean     //用来清除中间编译文件

   会出现rm *.o test

   

   3):在执行批处理的时候,可以更简单的:

                      #cpfilename.mk makefile

                      #make

                      #./test

    那么这样运行一次之后,以后就只要用make就行了。

 4:为了保护知识产权,可以只给别人中间.o文件,而不给C的源代码,一般人很难反编译

 5:如果编译不通过,注意查找源文件的错误,如头文件包含了没有,有没有函数写错,等等,会有提示,

    一般是一页错误修改后又有另一页的错误,所以要静下心来找呀,祝好运。

-----2012.11.20

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值