zoukankan      html  css  js  c++  java
  • Makefile的编写

    makefile介绍

      makefile的功能是管理源文件的编译链接,在makefile我们可以定义一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。具体可以参考:

      http://blog.csdn.net/ruglcc/article/details/7814546/

      http://www.cnblogs.com/liangxiaxu/archive/2012/07/31/2617384.html

    makefile规则

    target1: prerequisites1,prerequisites2,...
               command1
    target2: prerequisites1,prerequisites2,...
               command2
    ... 

          target: 一个目标文件,可以是Object File,也可以是执行文件。

       prerequisites: 要生成那个target所需要的文件或是目标。

       command: 也就是make需要执行的命令,可以是任意的shell命令

    makefile举例
      一、这里以一个简单的C程序作为例子,在一个文件夹下有下列的文件:

        1、make.exe
         这是一个可以执行makefile的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。
        2、main.c

    1 #include<stdio.h>
    2 int main(){
    3     printf("Hello World!
    ");
    4 }

        3、makefile

    test: main.o
        gcc -o test main.o
    main.o:main.c
        gcc -c -o main.o main.c
    clean: 
        del test.exe main.o 

       二、我们在此目录下打开shell窗口,输入“make“,enter,就可看见make已经在进行编译,在此文件目录下多了:

        1、main.o

        2、test.exe

            其实在编译时,make是根据makefile文件进行编译的。首先要编译test,而又找不到main.o,于是就会先编译main.o。编译main.o时先找到编译所需的main.c,然后再执行"gcc -c -o main.o main.c"语句生成main.o,此时test所需的文件已生成了,于是执行"gcc -o test main.o"生成test.exe。

        我们也可以在shell中输入”make clean“在执行clean,此时的test.exe 和main.o 就会被删除。

        //End

  • 相关阅读:
    Mac OS 下包管理器 homebrew的安装
    草根程序员八年百万年薪之路
    div隐藏滚动条,仍可滚动
    感觉身体被掏空by彩虹室内合唱团
    添加bash命令
    mysql性能优化
    PHP变量存储结构
    轻量级MVC框架(自行开发)
    一致性hash算法之php实现
    redis安装
  • 原文地址:https://www.cnblogs.com/Vincent-Bryan/p/5988191.html
Copyright © 2011-2022 走看看