zoukankan      html  css  js  c++  java
  • 对于Makefile的基本使用

    上课不听讲的后果就是课下疯狂补知识了

    原文来自https://www.cnblogs.com/chenguanfu/p/4415072.html

    在Windows下,只需要简单的点击以下make,rebuild即可。而在Linux下,这样的IDE环境并没有提供,难道必须每一步都执行一遍吗?比较ok的做法自然是能够利用批处理脚本来进行操作了,这样,只需要修改脚本中需要编译的文件即可。在Linux下,提供了这么一个方便的工具,make。那么接下来我们来利用make进行程序的组织编译吧。

    1. 编写tool.h

    1
    2
    3
    4
    5
    6
    #ifndef __TOOL_H
    #define __TOOL_H
     
    void printInteger(int number);
     
    #endif // end of tool.h

     2. 编写tool.c

    1
    2
    3
    4
    5
    6
    7
    #include "tool.h"
    #include "stdio.h"
     
    void printInteger(int number)
    {
            printf("the number is:%d ",number);
    }

     3. 编写main.c

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "tool.h"
    #include "stdio.h"
     
    int main(int argc, char* argv[])
    {
            int number;
            number=10;
            printf("Context-Type:text/html ");
            printInteger(number);
            return 0;
    }

     4. 编译链接文件生成可执行文件main

    方法1:

    命令行中进行编译

    4.1.1 编译main.c生成main.o

    1
    sudo cc -c main.c

     4.1.2 编译tool.c生成tool.o

    1
    sudo cc -c tool.c

     4.1.3 链接main.o和tool.o生成main可执行文件

    1
    sudo cc -o main main.o tool.o

     4.1.4 运行main

    1
    sudo ./main

     方法2:

    makefile进行编译链接

    4.2.1 编写makefile文件(没有后缀名)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #MakeFile
    main:  main.o tool.o
     
    main.o: main.c tool.h
            cc -c main.c
     
    tool.o: tool.c tool.h
            cc -c tool.c
     
    .PHONY:clean
    clean:
            rm *.o main

    注:直接粘贴复制可能不行 注意严格使用tab进行缩进 可以使用vim 看见字体特殊颜色 

    4.2.2 运行make进行编译链接

    1
    sudo make

     4.2.3 运行main

    1
    sudo ./main

     4.2.4 删除所有.o文件并再次编译

    1
    2
    sudo make clean
    sudo make
  • 相关阅读:
    C# — WinForm TCP连接之服务器端
    Linq to SQL — Group by
    pytorch model()[] 模型对象类型
    git官网下载太慢解决方法
    财务分析
    python错题集
    SQL 开窗函数 头尾函数 first_value()/last value()不常用
    徐杨老师的公开课关于敏捷算法
    SQL 开窗函数:range和rows的区别
    SQL开窗函数 row_number(),dense_rank(), rank()
  • 原文地址:https://www.cnblogs.com/loufangcheng/p/11799983.html
Copyright © 2011-2022 走看看