gcc生成静态库.a和动态库.so及其实例使用

介绍GCC生成静态库.a和动态库.so及其实例使用一、用gcc生成.a静态库和.so动态库1、例子1 hello程序讲解① 创建目录并编辑生成例子程序 hello.h、hello.c 和main.c②gcc生成静态库并使用③gcc生成动态库并使用④当静态库和动态库同名时,gcc的选择⑤静态库和动态库的总结2、实例23、 实例3①创建程序:②生成三个.o文件③将x2x、x2y目标文件生成静态库并使用④将x2x、x2y目标文件生成动态库并使用⑤将静态库和动态库生成文件大小比较二、 实验总结三、参考资料一、用g
摘要由CSDN通过智能技术生成

一、用gcc生成.a静态库和.so动态库

1、例子1 hello程序讲解

① 创建目录并编辑生成例子程序 hello.h、hello.c 和main.c

(1)例子程序hello.h

#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif

(2)例子程序 hello.c

#include<stdio.h>
void hello(const char *name)
{
printf("Hello %s\n",name);
}

(3)例子程序 main.c

#include"hello.h"
int main()
{
hello("everyone");
return 0;
}

(4)将hello.c编译成.o文件

gcc -c hello.c

在这里插入图片描述
提示:文件编辑可用 vim、nano、gedit等

②gcc生成静态库并使用

(1) 创建静态库
静态库文件名规范格式:lib为前缀,紧跟静态库名,扩展名为.a。 创建静态库用ar命令。

ar -crv libmyhello.a hello.o

如图所示:
在这里插入图片描述在这里插入图片描述
(2)使用静态库
方法一:gcc -o hello main .c -L -lmyhello

提示:main.c还可以放在-L.和-lmyhello之间,但是不能放在它俩之后,否则myhello没有定义。

-L:表示连接的库在当前目录

如图所示:在这里插入图片描述
方法二:gcc main.c libmyhello.a -o hello
如图所示:
在这里插入图片描述
方法三:先生成 main.c:gcc -c main.c
再生成可执行文件:gcc -o he

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值