• makefile文件制作入门


    一、首先,看一下最简单的C文件
    //hello.c文件
    #include <stdio.h>
     
    void main()
    {
        printf("hello world
    ");
    }
    为hello.c编写makefile文件,这里用gcc编译

    $ vi Makefile

    hello:hello.c
      gcc -o hello hello.c
    从中可以看出,最简单的makefile文件只需要两行,我们分别来看
    第1行:hello是要生成的文件,hello.c是编译需要的源文件,中间以:分隔
    第2行:是具体的编译命令
    二、我们还可以用gcc先把hello.c编译成机器语言,以.o结尾,最后再将各个文件进行链接生成二进制文件
       上面的makefile文件则可以写成这样:
    hello:hello.o
        gcc -o hello hello.o
    hello.o:hello.c
        gcc -c hello.c
    从上面的代码中可以看出,最后编译的hello是由hello.o最后生成的
    先看第3,4行:第3行,hello.c先编译生成hello.o,第4行,是生成hello.o具体的命令
    再看第1,2行:第1行,二进制文件hello需要hello.o,第2行,是生成hello具体的命令
     
    是不是很easy.
     
    三、如果有多个文件需要进行链接,只需生成.o文件,最后链接生成最终文件
    如:有file1.h,file1.c, file2.h, file2.c, main.c五个文件

    makefile文件如下:

    main:main.o file1.o file2.o
        gcc -o main main.o file1.o file2.o
    main.o:main.c file1.h file2.h
        gcc -c main.c
    file1.o:file1.h file1.c
        gcc -c file1.c
    file2.o:file2.h file2.c
        gcc -c file2.c
    从上面代码可以看出,需要先编译出file1.o,file2.o,main.o文件,最后链接生成最终的main文件,大功告成。
     
    Attention: A tab is needed before the command  like `gcc -c main.c` or will be terrible!!
  • 相关阅读:
    电脑族,记忆力下降怎么办
    asp.net入門經典讀書筆記
    GridView
    如何学习开源库
    i++与++i区别使用
    计算二次方程根
    MySQL Dump/Restore
    利用SetConsoleCursorPosition控制命令行光标位置
    How to upgrade to Ubuntu 10.10 Maverick Meerkat from ubuntu 10.04 lucid, karmic| Desktop & Server
    通过一条命令获取最快的 apt 源镜像
  • 原文地址:https://www.cnblogs.com/gr-nick/p/3324661.html
Copyright © 2020-2023  润新知