Linux-C-Program:makefile

Posted 运维笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-C-Program:makefile相关的知识,希望对你有一定的参考价值。

注:本文参照博客:https://blog.csdn.net/initphp/article/details/7692923

1. 概述

Makefile是一个C语言的程序编译规则。它能够帮助C语言建立自动化编译流程。一旦写好,便可以通过执行make命令,来编译整个工程。

2. 示例说明

创建项目如下:
val.h和val.c
val.h

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    int val(int *x);

val.c

    #include "val.h"
    int val(int *x) {
        puts("This is value=");
        printf("x:%d
",*x);
        return 0;
    }

get.h和get.c
get.h

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    int get(int *x,int *y);

get.c

    #include "get.h"
    int get(int *x,int *y) {
        puts("This is get");
        return(*x)*(*y);
    }

sum.h和sum.c
sum.h

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    int sum(int *x,int *y);

sum.c

    #include "sum.h"
    #include "val.h"
    int sum(int *x,int *y){
        val(x);
        puts("This is sum method");
        return *x + *y;
    }

main.c

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include "sum.h"
    #include "get.h"
    int main(){
        int x = 10;
        int y = 20;
        int z = sum(&x,&y);
        puts("This is Main");
        printf("z:%d
",z);
        x = 20;
        z = get(&x,&y);
        printf("z:%d
",z);
        return 1;
}

2.1 无makefile编译

生成中间目标文件
执行:gcc -c val.c get.c sum.c main.c
生成可执行文件
执行:gcc -o main main.o val.o sum.o get.o

2.2 有makefile编译

编辑makefile文件

    main: get.o sum.o val.o main.o
        gcc -o main get.o sum.o val.o main.o
    main.o:main.c
        gcc -c main.c
    val.o:val.h val.c
        gcc -c val.c
    sum.o:val.h sum.h sum.c
        gcc -c sum.c
    get.o:get.h get.c
        gcc -c get.c
    clean:
        rm -rf *.o

执行make命令











以上是关于Linux-C-Program:makefile的主要内容,如果未能解决你的问题,请参考以下文章

R留学生作业代码代写代编程代编程代编程

IPEX-1代/3代/4代/5代,PCB天线底座,公头,样式及封装尺寸图

JVM 年轻代 老年代 持久代 gc

深圳本地网店代运营公司

C线程代业代写代调试POSIX Threads代编码

jvm中的年轻代 老年代 持久代 gc