`
mkdkd
  • 浏览: 34436 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
社区版块
存档分类
最新评论

Makefile 简单了解

 
阅读更多

Makefile 简单了解
2011年11月30日
  规则:用于说明如何生成一个或多个目标文件
  如下
  targets :prerequisites
  command
  目标 依赖 命令
  main: main.o
  gcc mian.o - o main
  目标 :main
  依赖 : main.o
  命令 : gcc main.o - o main (****提示命令需要【tab】键开始******)
  makefile中把没有任何依赖只有执行命令的目标称为伪目标(phony targets)
  。PHONY : clean
  clean:
  rm -f main  *.o
  .PHONY 将clean目标声明为伪目标
  例子:
  @*********************************************************************
  @fun.c
  @*********************************************************************
  #include "fun.h"
  int max_fun(int x,int y)
  {
  if(x>=y)
  return x;
  else
  return y;
  }
  @*********************************************************************
  @fun.h
  @*********************************************************************
  include
  int max_fun(int x,int y);
  @*********************************************************************
  @main.c
  @*********************************************************************
  #include"fun.h"
  int main(void)
  {
  int a,b;
  int max = 0;
  scanf("%d%d",&a,&b);
  max=max_fun(a,b);
  printf("%d\n",max);
  return 0;
  }
  @*********************************************************************
  @makefile
  @*********************************************************************
  main:main.o fun.o
  gcc main.o fun.o -o main
  main.o:main.c fun.h
  gcc -c main.c -o main.o
  fun.o:fun.c fun.h
  gcc -c fun.c -o fun.o
  clean:
  rm -f main *.o
  下面这用变量来实现makefile的编写
  obj=main.o fun.c
  main: $(obj)
  gcc $(obj) - o main
  此时obj为环境变量 在makefile中,存在系统默认的环境变量
  》$^ :仅代表所有的依赖文件
  》 $@ :代表目标文件
  》 $的makefile可写成
  @*********************************************************************
  @makefile
  @系统默认的环境变量
  @*********************************************************************
  main:main.o fun.o
  gcc $^ -o $@
  main.o:main.c fun.h
  gcc -c $makefile
  @自定义
  @*********************************************************************
  obj=main.o fun.o
  cc = gcc
  main:$(obj)
  $(cc) $(obj) -o $@
  main.o:main.c fun.h
  $(cc) -c Smakefile中的#字符后的内容被视为注释
  @用于取消回显
分享到:
评论

相关推荐

    Makefile初步

    1、了解Makefile的基本概念和基本结构 2、初步掌握编写简单Makefile的方法 3、了解递归Make的编译过程 4、初步掌握利用GNU Make编译应用程序的方法

    经典的Makefile 代码例子,简单易懂,

    Makefile简单的例子,了解这个后可以快速读懂复杂的Makefile结构.适合从事嵌入式开发的从业者学习.

    makefile编写详解

    文档中详细讲解了makefile组织结构和编写技巧,阅读后便可对makefile有一个全面的了解,不仅能够很好理解makefile,还能编写简单实用的makefile。

    一个简单的makefile示例及其注释1

    一个简单的makefile示例及其注释相信在unix下编程的没有不知道makefile的,刚开始学习unix平台下的东西,了解了下makefile的制作,觉得有

    跟我一起写_Makefile

    跟我一起写_Makefile,学习MAKEFILE的基础运用,增加对MAKEFILE 的了解。学习写简单的AMKEfile

    Makefile学习教程

    本文由简单到难,深入讲解Makefile的使用,另外有C++、C代码示例讲解,是了解和学习Makefile的必备。

    Makefile 超简易教程.txt

    Makefile 超简易教程.txt 了解Makefile最简单的方法

    Linux系统下,使用“epoll+线程池”技术,通过makefile管理的简单项目-“服务器与客户端完成通信并处理小型业务”

    内容摘要:使用“epoll+线程池”技术,通过makefile管理的简单项目——“服务器与客户端完成通信并处理小型业务” 技术涉及:网络初始化、epoll模型、线程池、线程同步、互斥锁 适用人群:在校大学生,并对网络通信...

    内核makefile

    挺不错的,真的挺不错的,是自学的好帮手,可以简单的了解linux

    Android.mk文件分析

    了解了标准的Makefile后,发现Android.mk其实是把真正的Makefile包装起来,做成了一个对使用者来说很简单的东西。使用它来编译程序时,不管是动态库、可执行的二进制文件,还是Jar库、APK包,只要沿着一个简单的思路...

    实验5--Linux-高级程序设计.doc

    编写一个简单的C语言程序,编写Makefile文件。了解编译过程,并用gdb进行调 试。 (2) 编写一个多线程程序(pthread),实现2程同步互斥 #include <stdio.h> #include <pthread.h> #define BUFFER_SIZE 16 struct ...

    atmega128例程(总结的比较全面)

    后来经同学介绍,用起了winavr,其实也是比较的简单,只不过要加一个makefile而已,其实makefile可以用软件自带的组建自动生成,只需修改几个参数就可以用。后来又用起了code vision avr,虽然不太习惯,也谈不上不...

    Simulink之代码生成-02应用层和底层的接口.docx

    作为一个总是用C来写代码的人来说,第一次了解到代码生成的时候我最先开始想研究的就是怎么能让生成的代码用到嵌入式控制器中。在最开始,没有Green Hills、没有matlab的硬件支持包,不会makefile,就算环境如此简陋...

    corbaTest.rar

    corba 工程例子,在lunix环境下运行makefile 生成客户端和服务端程序,例子简单,容易理解,希望对想了解corba通讯的人有所帮助,corba相对来说比较难懂,希望你有钻研的精神,不要半途而废

    led_driver.zip

    JZ2440教程中的LED驱动源码makefile文件,完整的驱动文件,学习简单的驱动移植,了解Linux的驱动架构

    Linux字符设备驱动实验代码

    简单的字符设备的驱动程序,并对所编写的设备驱动程序进行测试,了解Linux操作系统如何管理字符设备。由于网上许多资源不完整,本资源整合了许多内容。包括驱动程序memdev.c,memdev.h,app-mem.c,MakeFile文件。...

    linux下opengl加载bmp、png、jpg格式图片

    下载时请注意:这是我写的一个简单的测试程序,注释很少,代码比较乱,可读性低,但里面所含的技术,作为初学者了解一下是很有必要的。 程序功能:通过glx将x11和sdl创建的窗口联系起来(不是sdl-opengl的东西)供...

    juntos:一个简单的爱好操作系统

    我正在编写一个简单的操作系统,以了解有关OS实现,x86体系结构和裸机Rust的更多信息。 非常感谢以下来源提供的课程和信息,这些都是我用来帮助编写的: 特征 我要实现的功能的基本列表: 启动进入Rust内核 ...

    ecs-status:简单的 AWS ECS 状态页面

    我们创建这个项目是因为 AWS 控制台目前缺少页面,而且如果您想快速了解 ECS 集群的状态,使用 CLI 工具会很痛苦。 该项目提供的只是:一个 ECS 集群状态一页。 它目前看起来像这样: 安装 将此存储$GOPATH到您的$...

    OS实验-44-第2次实验1

    2.(练习1)会使用make编译文件,了解Makefile中的主要组成,实验报告中要有简单介绍 3.(练习2)学会使用qemu与gdb协作进行调试ucore代码

Global site tag (gtag.js) - Google Analytics