注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

W_中原的博客笔记

通知:新博客日志将更新到个人站点:http://www.zhgyuan.cn/

 
 
 

日志

 
 

makefile文件编写  

2014-02-12 20:57:23|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    makefile用百度解释是一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。其实说白了就是约定了一些规范,make按照makefile来调用编译程序。

自己也是刚刚接触到makefile,学linux肯定必不可少,做些入门笔记。
动手。
写个跟简单的单片机上常用到的程序吧,LED灯闪烁的小例子(只有个框架)。用make编译。
创建函数与库
#touch main.c led.c led.h delay.h delay.c lib.h
编写程序,比如写main.c
#sudo gedit main.c
在新弹出的对话框中敲入代码:
#include<stdlib.h>
#include<stdio.h>
#include "led.h"
#include "delay.h"
#include "lib.h"

void functions()
{
  printf("Hello,World\n");
}

int main()
{
  functions();
}
makefile文件编写 - W_中原 - 汪中原的博客笔记
 

led.c led.h delay.h delay.c lib.h代码如下:
led.c:
#include"led.h"
#include"delay.h"

void led_function(void)
{
;
}
led.h:
void led_function(void);

delay.h:
void delay_function(void);

delay.c:
#include"led.h"
#include"delay.h"

void delay_function(void)
{
;
}
lib.h:
void functions();

现在编写makefile:
这里要注意的是,Tab建与空格键作用是不一样的,“:”后用空格建,gcc钱必须用Tab,字体颜色会有变化的,如图
 myapp: main.o led.o delay.o
gcc -o myapp main.o led.o delay.o
main.o: main.c led.h delay.h lib.h
gcc -c main.c
led.o: led.c led.h delay.h
gcc -c led.c
delay.o: delay.c led.h delay.h
gcc -c delay.c
makefile文件编写 - W_中原 - 汪中原的博客笔记

makefile文件也做好了,只要make就可以编译了。
其中led.c 包含进的库有led.h delay.h
delay.c有delay.h led.h
main有stdlib.h、stdio.h(这是系统带的C语言库,main.o中就不必写入)led.h delay.h lib.h
编译make:
gcc -c main.c
gcc -c led.c
gcc -c delay.c
gcc -o myapp main.o led.o delay.o


执行./myapp

 makefile文件编写 - W_中原 - 汪中原的博客笔记
  


  评论这张
 
阅读(119)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017