gcc编译链接库并调用链接库的方法

本文详细介绍了Linux系统中静态链接库和动态链接库的区别,以及如何使用gcc进行编译。通过示例展示了创建静态库libhello.a和动态库libhello.so的过程,并解释了在链接时使用-static和-fPIC选项的重要性。最后,提到了在编译过程中可能遇到的问题。
摘要由CSDN通过智能技术生成

第一章:明白什么是静态链接库和动态链接库

             在linux操作系统中,存在有静态库和动态库,两者之间的区别只是被载入时间的不同

静态库在函数链接过程中会拷贝副本到可执行程序中,所以如果用户有很多程序调用这个静态链接库,就会拷贝多次;

动态链接库是在执行过程中才会调用,因此动库库不能删除。

第二章:库的命名

一般静态库的命名采用libxxx.a这种形式的

动态库的命名采用libxxx.so这种形式的

第三章:示例

本实例提供2个程序文件,分别是hello.c test.c

hello.c

#include <stdio.h>

void hello()
{
       printf("hello,word");

}


test.c

#include <stdio.h>

int main()
{
        hello();

}

我们先创建静态链接库

gcc -c hello.c

会生成hello.o文件

静态链接库使用ar命名

ar rcs libhello.a hello.o

会生成libhell.a这个文件,也就是静态链接库文件

如何使用:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值