makefile文件编写简单示例(使用静态库)

1.文件内容
add.c

int add(int a, int b){
return a + b;
}

sub.c

int sub(int a, int b){
return a - b;
}

add.h

#ifndef _ADD_H_
#define _ADD_H_
extern int add(int a, int b);

#endif

sub.h

#ifndef _SUB_H_
#define _SUB_H_
extern int sub(int a, int b);

#endif

main.c

#include "add.h"
#include "sub.h"
#include <stdio.h>
#include <math.h>

int main(){
    int a=7,b=6,result;
    result = add(a,b);
    printf("\nadd:%d\n",result);
    result = sub(a,b);
    printf("sub:%d\n",result);
    printf("sin(%d) = %lf\n",a,sin(a));
    printf("cos(%d) = %lf\n\n",b,cos(b));
    return 0;

}

2.文件结构

.
├── include
│ ├── add.h
│ └── sub.h
├── makefile
├── mymath
│ ├── add.c
│ └── sub.c
├── result
└── src
└── main.c

3.makefile文件内容

install:init libmymath.a
        mv libmymath.a ./../lib

init:
        mkdir -p ./../lib

libmymath.a:add.o sub.o
        ar r libmymath.a mymath/*.o


add.o: mymath/add.c 
        gcc -c mymath/add.c -o mymath/add.o
sub.o: mymath/sub.c 
        gcc -c mymath/sub.c -o mymath/sub.o
main.o: src/main.c 
        gcc -c src/main.c -o src/main.o  -I./include/ 

clean:  
        @echo "clean project"  
        rm -rf mymath/*.o 
        rm -rf src/*.o 
        rm -rf result/*
        rm -rf ./../lib
        @echo "clean complete"  


#makefile  
ttt: main.o 
        gcc src/main.o -o result/ttt -L./../lib -lm -lmymath
        result/ttt

下载链接:https://download.csdn.net/download/weixin_42004975/18578388


版权声明:本文为weixin_42004975原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。