Ubuntu中GCC生成静态库和动态库作业2

目录

1.编写代码

2.用gcc编译器编译出.o文件,然后ls打开查看

3.静态库

4.动态库

5.静态库与动态库的生成文件的比较

静态库

动态库

总结

参考资料

在第一次作业的程序代码基础进行改编,除了x2x函数之外,再扩展写一个x2y函数(功能自定),main函数代码将调用x2x和x2y ;将这3个函数分别写成单独的3个 .c文件,并用gcc分别编译为3个.o 目标文件;将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件, 然后用 gcc将 main函数的目标文件与此静态库文件进行链接,生成最终的可执行程序,记录文件的大小,将x2x、x2y目标文件用 ar工具生成1个 .so 动态库文件, 然后用 gcc将 main函数的目标文件与此动态库文件进行链接,生成最终的可执行程序,记录文件的大小,并与之前做对比

1.编写代码

sub1.c

float x2x(int a,int b)
{
	float c=0;
	c=a+b;
	return c;
}

sub2.c

float x2y(int a,int b)
{
	float c=0;
	c=a/b;
	return c;
}

sub.h

#ifndef SUB_H
#define SUB_H
float x2x(int a,int b);
float x2y(int a,int b);
#endif

main.c

#include<stdio.h>
#include"sub.h"
void main()
{
	int a,b;
	printf("Please input the value of a:");
	scanf("%d",&a);
	printf("Please input the value of b:");
	scanf("%d",&b);
	printf("a+b=%.2f\n",x2x(a,b));
	printf("a/b=%.2f\n",x2y(a,b));
}

2.用gcc编译器编译出.o文件,然后ls打开查看

gcc -c sub1.c sub2.c
ls

3.静态库

ar crv libsub.a sub1.o sub2.o
gcc -o main main.c libsub.a

4.动态库

gcc -shared -fPIC -o libsub.so sub1.o sub2.o
gcc -o main main.c libsub.so

5.静态库与动态库的生成文件的比较

静态库

动态库

 

总结

虽然在过程中有一点挫折,但在仔细揣摩情况下还是比较熟练掌握了生成静态图和动态图,了解了要将程序编译成.o文件,之后即可得可执行文件

参考资料

Ubuntu18.04下OpenCV3.4.11的安装及使用示例_可乐有点好喝的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值