linux环境下用gcc生成.a静态库和.so动态库

本文详述了在Linux系统中如何使用gcc编译器创建静态库(.a)和动态库(.so)。通过hello world示例,包括创建源文件、生成.o中间文件、使用ar命令构建静态库及gcc命令生成动态库。同时,文章对比了静态库与动态库在程序中的使用及其文件大小差异,并提供了实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、用gcc生成静态库和动态库

1.以hello world为例

(1)创建hello.c,hello.h,main.c程序

(2)再生成.o文件

(3)生成.a静态库文件

(4)在程序中使用静态库

(5)创建.so动态库文件

 (6)在程序中使用动态库

二、实例演示

1.程序编写

 2.生成.a静态库文件

3、生成 .so 动态库文件

4.静态库与动态库文件大小对比

三、总结

四、参考文献


一、用gcc生成静态库和动态库

1.以hello world为例

(1)创建hello.c,hello.h,main.c程序

先在终端中输入代码

mkdir hello

cd hello

创建hello文件夹
然后使用gedit生成hello.c,hello.h,main.c三个文件,三个文件源代码如下

hello.c

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

hello.h

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

main.c

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

(2)再生成.o文件

利用gcc -c hello.c生成hello.o的文件、

(3)生成.a静态库文件

静态库文件名的命名规范是以 lib 为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将 创建的静态库名为 myhello,则静态库文件名就是 libmyhello.a。在创建和使用静态库时, 需要注意这点。创建静态库用 ar 命令。在系统提示符下键入以下命令将创建静态库文件 libmyhello.a。
 

ar -crv libmyhello.a hello.o 

(4)在程序中使用静态库

输入代码

gcc main.c libmyhello.a -o hello

 再输入./hello输出程序结果

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值