Makefile实验


源码目录结构

在这里插入图片描述

code目录

calc.c

#include<calc.h>
#include <stdlib.h>

int main(int argc,char **argv)
{
	if(argc!=3){
		printf("parameter error!");
		return -1;
	}
	int a=atoi(argv[1]);
	int b=atoi(argv[2]);
	printf("%d + %d = %d\n",a,b,add(a,b));
	printf("%d - %d = %d\n",a,b,sub(a,b));
	printf("%d * %d = %d\n",a,b,mult(a,b));
	printf("%d / %d = %.2f\n",a,b,mydiv(a,b));
	return 0;
}

Makefile

ARCH :=arm
CROS_COMPILE :=

Target :=build
OBJ :=calc.c

CC :=gcc
CFLAGS := -I ../include -o
LDFLAGS :=-L ../lib -lshare -Wl,rpath='./'

.PHONY:all
all:
        $(CROS_COMPILE)$(CC) $(CFLAGS) $(Target) $(OBJ) $(LDFLAGS)
.PHONY:clean
clean:
        rm $(Target)

include目录

calc.h

#ifndef __CALC_H_
#define __CALC_H_
#include<stdio.h>
extern int add(int a,int b);
extern int sub(int a,int b);
extern int mult(int a,int b);
extern float mydiv(int a,int b);

#endif

lib目录

add.c

#include<calc.h>
int add(int a,int b)
{
    return a+b;
}

sub.c

#include<calc.h>
int sub(int a,int b)
{
    return a-b;
}

mult.c

#include<calc.h>
int mult(int a,int b)
{
    return a*b;
}

div.c

#include<calc.h>
float mydiv(int a,int b)
{
    return (float)a/b;
}

Makefile

Target_share :=libshare.so
#Target_static :=libstatic.a
# if you want create a static library ,you can search in google browser(bing)
OBJ := add.c div.c mult.c sub.c

CC :=gcc
CFLAGS :=-I ../include/ -fPIC -shared -o 

.PHONY:all
all:
	$(CC) $(CFLAGS) $(Target_share) $(OBJ)
.PHONY:clean
clean:
	rm -f $(Target_share)

测试验证

首先制作生成动态库,在lib目录下执行make
在这里插入图片描述
回到code目录执行make

在这里插入图片描述

好的,没有问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jacky~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值